Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Jaeger错误未找到合适的发件人。使用NoopSender_C#_Jaeger_Opentracing - Fatal编程技术网

C# Jaeger错误未找到合适的发件人。使用NoopSender

C# Jaeger错误未找到合适的发件人。使用NoopSender,c#,jaeger,opentracing,C#,Jaeger,Opentracing,我正在使用下面的OpenTracing示例,Jaeger 我使用下面的命令运行了Jaeger UI docker run -d --name jaeger -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778-p 16686:16686 -p 14268:14268 -p 9411:9411 jaegertracing/all-in-one:lates

我正在使用下面的OpenTracing示例,Jaeger

我使用下面的命令运行了Jaeger UI

docker run -d --name jaeger -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 -p 5775:5775/udp -p 6831:6831/udp -p 6832:6832/udp -p 5778:5778-p 16686:16686 -p 14268:14268 -p 9411:9411 jaegertracing/all-in-one:latest
下面是我在github链接上尝试的代码

using Microsoft.Extensions.Logging;
using System;
using Jaeger.Metrics;
using Jaeger.Reporters;
using Jaeger.Samplers;
using Jaeger.Senders.Thrift;
using Jaeger;
using OpenTracing;
using OpenTracing.Util;

namespace Jaeger_Class_Library
{
    public class Hello
    {
        private readonly ITracer _tracer;
        private readonly ILogger<Hello> _logger;

        public Hello()
        {

        }

        public Hello(OpenTracing.ITracer tracer, ILoggerFactory loggerFactory)
        {
            _tracer = tracer;
            _logger = loggerFactory.CreateLogger<Hello>();
        }

        public void SayHello(string helloTo)
        {
            var span = _tracer.BuildSpan("say-hello").Start();
            var helloString = $"Hello, {helloTo}!";
            _logger.LogInformation(helloString);
            span.Finish();
        }

        private static Tracer InitTracer(string serviceName, ILoggerFactory loggerFactory)
        {
            var samplerConfiguration = new Configuration.SamplerConfiguration(loggerFactory)
                .WithType(ConstSampler.Type);
                //.WithParam(1);

            var reporterConfiguration = new Configuration.ReporterConfiguration(loggerFactory)
                .WithLogSpans(true);

            return (Tracer)new Configuration(serviceName, loggerFactory)
                .WithSampler(samplerConfiguration)
                .WithReporter(reporterConfiguration)
                .GetTracer();
        }

        public void TriggerTrace()
        {
            using (var loggerFactory = new LoggerFactory().AddConsole())
            {
                var helloTo = "Test message to Trace";
                using (var tracer = InitTracer("hello-world", loggerFactory))
                {
                    new Hello(tracer, loggerFactory).SayHello(helloTo);
                }
            }
        }

    }

}
下面是我看到的错误,我在UI中没有看到任何痕迹, 我是否缺少任何配置

warn: Jaeger.Senders.SenderResolver[0]
      **No suitable sender found. Using NoopSender, meaning that data will not be sent anywhere!**
info: Jaeger.Configuration[0]
      Initialized Tracer(ServiceName=hello-world, Version=CSharp-0.4.2.0, Reporter=CompositeReporter(Reporters=RemoteReporter(Sender=NoopSender()), LoggingReporter(Logger=Microsoft.Extensions.Logging.Logger`1[Jaeger.Reporters.LoggingReporter])), Sampler=ConstSampler(True), IPv4=172425085, Tags=[jaeger.version, CSharp-0.4.2.0], [hostname, RRUPAKULA-LAP], [ip, 10.70.255.125], ZipkinSharedRpcSpan=False, ExpandExceptionLogs=False, UseTraceId128Bit=False)
info: Jaeger_Class_Library.Hello[0]
      Hello, Test message to Trace!
info: Jaeger.Reporters.LoggingReporter[0]
      Span reported: cc9fa176171a0dab:cc9fa176171a0dab:0000000000000000:1 - say-hello
Tracing...

我也有同样的问题。找到解释如何配置Thrift sender的此页面:

不过,C#教程没有提到这一点

这是我的InitTracer()。适用于从binary启动的Jaeger:

    private static Tracer InitTracer(string serviceName, ILoggerFactory loggerFactory)
    {
        Configuration.SenderConfiguration.DefaultSenderResolver = new SenderResolver(loggerFactory)
            .RegisterSenderFactory<ThriftSenderFactory>();

        var samplerConfiguration = new Configuration.SamplerConfiguration(loggerFactory)
            .WithType(ConstSampler.Type)
            .WithParam(1);

        var sender = new SenderConfiguration(loggerFactory);

        var reporterConfiguration = new Configuration.ReporterConfiguration(loggerFactory)
            .WithLogSpans(true)
            .WithSender(sender);

        return (Tracer)new Configuration(serviceName, loggerFactory)
            .WithSampler(samplerConfiguration)
            .WithReporter(reporterConfiguration)
            .GetTracer();
    }
private静态跟踪程序InitTracer(字符串serviceName,ILoggerFactory-loggerFactory)
{
Configuration.SenderConfiguration.DefaultSenderResolver=新的SenderResolver(loggerFactory)
.RegisterSenderFactory();
var samplerConfiguration=新配置。samplerConfiguration(loggerFactory)
.WithType(ConstSampler.Type)
.带参数(1);
var发送器=新发送器配置(loggerFactory);
var reporterConfiguration=新配置。reporterConfiguration(loggerFactory)
.WithLogSpans(真)
.与发送方(发送方)进行通信;
返回(跟踪程序)新配置(serviceName、loggerFactory)
.带采样器(采样器配置)
.WithReporter(reporterConfiguration)
.GetTracer();
}
    private static Tracer InitTracer(string serviceName, ILoggerFactory loggerFactory)
    {
        Configuration.SenderConfiguration.DefaultSenderResolver = new SenderResolver(loggerFactory)
            .RegisterSenderFactory<ThriftSenderFactory>();

        var samplerConfiguration = new Configuration.SamplerConfiguration(loggerFactory)
            .WithType(ConstSampler.Type)
            .WithParam(1);

        var sender = new SenderConfiguration(loggerFactory);

        var reporterConfiguration = new Configuration.ReporterConfiguration(loggerFactory)
            .WithLogSpans(true)
            .WithSender(sender);

        return (Tracer)new Configuration(serviceName, loggerFactory)
            .WithSampler(samplerConfiguration)
            .WithReporter(reporterConfiguration)
            .GetTracer();
    }