Skip to content

feat: add Loki hosting integration - #2247

Open
meysamhadeli wants to merge 3 commits into
CommunityToolkit:mainfrom
meysamhadeli:feat/add-aspire-hosting-loki
Open

meysamhadeli wants to merge 3 commits into
CommunityToolkit:mainfrom
meysamhadeli:feat/add-aspire-hosting-loki

Conversation

@meysamhadeli

Copy link
Copy Markdown

Overview

Adds a preview CommunityToolkit.Aspire.Hosting.Loki hosting integration for running Grafana Loki in Aspire.

Includes:

  • Loki container resource with HTTP and gRPC endpoints
  • Configurable image, registry, tag, ports, health checks, and gRPC support
  • Connection string and connection properties
  • Persistent volume and bind-mount helpers
  • Custom Loki configuration bind mounts
  • C# and TypeScript AppHost examples
  • API and ServiceDefaults example projects
  • Resource, publishing, persistence, and TypeScript tests
  • Package README and root integration catalog entry

Outstanding validation differences:

  • Full AppHost validation requires Aspire CLI bundle setup.
  • TypeScript validation requires PowerShell.
  • Docker runtime tests require a working Linux container runtime.

PR Checklist

  • Created a feature/dev branch in your fork
  • Based off latest main branch of toolkit
  • PR doesn't include merge commits
  • New integration
    • Docs are written
    • Added package description and tags
  • Tests for the changes have been added
  • Contains NO breaking changes
  • Every new public API has full XML docs
  • Code follows repository style conventions

Other information

This is a new preview hosting integration. CI test discovery includes Hosting.Loki.Tests.

Copilot AI balanced review requested due to automatic review settings October 14, 2026 13:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The gRPC endpoint advertises an unusable TCP URI, and persistence cleanup plus polyglot validation and documentation need correction.

5 open findings
What changed in this PR

Adds a preview Loki hosting integration as a standalone container-backed Aspire service with C#, TypeScript, publishing, persistence, and functional coverage.

Changes:

  • Adds Loki resource APIs, endpoints, health checks, connection properties, and mount helpers.
  • Adds C# and TypeScript examples plus package documentation.
  • Adds app-model, manifest, runtime, persistence, and TypeScript tests.
File Description
README.md Adds Loki to the integration catalog.
CommunityToolkit.Aspire.slnx Registers source, test, and example projects.
src/​CommunityToolkit.Aspire.Hosting.Loki/​CommunityToolkit.Aspire.Hosting.Loki.csproj Defines the preview package.
src/​CommunityToolkit.Aspire.Hosting.Loki/​LokiBuilderExtensions.cs Implements Loki registration and mount helpers.
src/​CommunityToolkit.Aspire.Hosting.Loki/​LokiResource.cs Defines endpoints and connection properties.
src/​CommunityToolkit.Aspire.Hosting.Loki/​LokiSettings.cs Defines configurable container settings.
src/​CommunityToolkit.Aspire.Hosting.Loki/​README.md Documents basic C# usage.
tests/​CommunityToolkit.Aspire.Hosting.Loki.Tests/​CommunityToolkit.Aspire.Hosting.Loki.Tests.csproj Defines the test project.
tests/​CommunityToolkit.Aspire.Hosting.Loki.Tests/​ResourceCreationTests.cs Tests app-model and manifest behavior.
tests/​CommunityToolkit.Aspire.Hosting.Loki.Tests/​LokiFunctionalTests.cs Tests storage persistence.
tests/​CommunityToolkit.Aspire.Hosting.Loki.Tests/​TypeScriptAppHostTests.cs Validates TypeScript startup.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost/​AppHost.cs Demonstrates C# orchestration.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.csproj Configures the C# AppHost.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost/​appsettings.json Configures AppHost logging.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost/​Properties/​launchSettings.json Adds AppHost launch profiles.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​apphost.mts Demonstrates TypeScript orchestration.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​aspire.config.json Maps the local integration package.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​package.json Defines TypeScript tooling.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​package-lock.json Locks TypeScript dependencies.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​tsconfig.json Configures TypeScript compilation.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/​eslint.config.mjs Configures TypeScript linting.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.Api/​Program.cs Adds the example API.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.Api/​CommunityToolkit.Aspire.Hosting.Loki.Api.csproj Configures the API project.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.Api/​CommunityToolkit.Aspire.Hosting.Loki.Api.http Adds a sample API request.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.Api/​appsettings.json Configures API logging.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.Api/​Properties/​launchSettings.json Adds the API launch profile.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.ServiceDefaults/​Extensions.cs Adds shared telemetry and health defaults.
examples/​loki/​CommunityToolkit.Aspire.Hosting.Loki.ServiceDefaults/​CommunityToolkit.Aspire.Hosting.Loki.ServiceDefaults.csproj Defines ServiceDefaults dependencies.
Files not reviewed (1)
  • examples/loki/CommunityToolkit.Aspire.Hosting.Loki.AppHost.TypeScript/package-lock.json: Generated file

🧠 Review effort: Balanced


💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs Outdated
Comment thread tests/CommunityToolkit.Aspire.Hosting.Loki.Tests/LokiFunctionalTests.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiSettings.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/README.md
@meysamhadeli

Copy link
Copy Markdown
Author

@meysamhadeli please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@dotnet-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@dotnet-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@dotnet-policy-service agree company="Microsoft"

Contributor License Agreement

@dotnet-policy-service agree

Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiResource.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiResource.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiResource.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs Outdated
Comment thread src/CommunityToolkit.Aspire.Hosting.Loki/LokiBuilderExtensions.cs

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants