Browse Source

Refactore zipkin extension (#816)

finitereality/replica-status-colors
Marvin Huber 6 years ago
committed by GitHub
parent
commit
3c7befca6c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 49
      src/Microsoft.Tye.Extensions/Zipkin/ZipkinExtension.cs

49
src/Microsoft.Tye.Extensions/Zipkin/ZipkinExtension.cs

@ -35,39 +35,48 @@ namespace Microsoft.Tye.Extensions.Zipkin
}; };
context.Application.Services.Add(service); context.Application.Services.Add(service);
foreach (var s in context.Application.Services) foreach (var serviceBuilder in context.Application.Services)
{ {
if (object.ReferenceEquals(s, service)) if (ReferenceEquals(serviceBuilder, service))
{ {
continue; continue;
} }
// make zipkin available as a dependency of everything. // make zipkin available as a dependency of everything.
if (!s.Dependencies.Contains(service.Name)) if (!serviceBuilder.Dependencies.Contains(service.Name))
{ {
s.Dependencies.Add(service.Name); serviceBuilder.Dependencies.Add(service.Name);
} }
} }
} }
if (context.Operation == ExtensionContext.OperationKind.LocalRun) switch (context.Operation)
{ {
if (context.Options!.DistributedTraceProvider is null) case ExtensionContext.OperationKind.LocalRun:
{ {
// For local development we hardcode the port and hostname if (context.Options!.DistributedTraceProvider is null)
context.Options.DistributedTraceProvider = "zipkin=http://localhost:9411"; {
} // For local development we hardcode the port and hostname
} context.Options.DistributedTraceProvider = "zipkin=http://localhost:9411";
else if (context.Operation == ExtensionContext.OperationKind.Deploy) }
{
foreach (var project in context.Application.Services.OfType<DotnetProjectServiceBuilder>())
{
var sidecar = DiagnosticAgent.GetOrAddSidecar(project);
// Use service discovery to find zipkin break;
sidecar.Args.Add("--provider:zipkin=service:zipkin"); }
sidecar.Dependencies.Add("zipkin"); case ExtensionContext.OperationKind.Deploy:
} {
foreach (var project in context.Application.Services.OfType<DotnetProjectServiceBuilder>())
{
var sidecar = DiagnosticAgent.GetOrAddSidecar(project);
// Use service discovery to find zipkin
sidecar.Args.Add("--provider:zipkin=service:zipkin");
sidecar.Dependencies.Add("zipkin");
}
break;
}
default:
throw new ArgumentOutOfRangeException();
} }
return Task.CompletedTask; return Task.CompletedTask;

Loading…
Cancel
Save