我正在使用. Net创建一个应用程序。Net with OpenTelemory用于收集指标,跟踪... Net应用程序使用Otlp导出器。此外,我配置了一个收集器,其中Otlp作为接收器,Prometheus作为指标的导出器。
我设置了ServiceName(例如“OpenTelemetrySample”),并在中设置了一些属性(例如attributeA、attributeB)。Net应用程序
services.AddOpenTelemetryMetrics(builder =>{
builder.SetResourceBuilder(ResourceBuilder.CreateDefault()
.AddService("OpenTelemetrySample")
.AddAttributes(new KeyValuePair<string, object>[]
{new("attributeA", "AAA"), new("attributeB", "BBB")}));
builder.AddMeter("opentelemetry-meter");
builder.AddOtlpExporter(otlpOptions =>
{otlpOptions.Endpoint = new Uri("http://localhost:4317");
});
});
然后我在代码中使用一些计数器:
static Meter myMeter = new("opentelemetry-meter", "1.0.0");
static Counter<int> myCounter = myMeter.CreateCounter<int>(name: $"test-counter",
unit: "Counter",
description: "The number of something");
...
myCounter.Add(2, new("custom.tagA", "tagValueA"), new("custom.tagB", "tagValueB"));
我在PrometeusUI中看到的结果是:在这里,我希望看到某处的服务。资源的名称和属性,但在Prometheus UI中找不到它们。
例如,同样的过程,当我通过收集器的控制台导出指标时,会在资源标签部分显示提到的属性
控制台输出:
collector | 2022-02-15T13:01:40.968Z INFO loggingexporter/logging_exporter.go:56 MetricsExporter {"#metrics": 1}
collector | 2022-02-15T13:01:40.968Z DEBUG loggingexporter/logging_exporter.go:66 ResourceMetrics #0
collector | Resource labels:
collector | -> attributeA: STRING(AAA)
collector | -> attributeB: STRING(BBB)
collector | -> service.name: STRING(OpenTelemetrySample)
collector | -> service.instance.id: STRING(0f08e609-66e0-49a5-ad6d-44c8e3520bad)
collector | InstrumentationLibraryMetrics #0
collector | InstrumentationLibrary opentelemetry-meter 1.0.0
collector | Metric #0
collector | Descriptor:
collector | -> Name: test-counter
collector | -> Description: The number of something
collector | -> Unit: Counter
collector | -> DataType: Sum
collector | -> IsMonotonic: true
collector | -> AggregationTemporality: AGGREGATION_TEMPORALITY_CUMULATIVE
collector | NumberDataPoints #0
collector | Data point attributes:
collector | -> custom.tagA: STRING(tagValueA)
collector | -> custom.tagB: STRING(tagValueB)
collector | StartTimestamp: 2022-02-15 12:26:55.3992028 +0000 UTC
collector | Timestamp: 2022-02-15 13:01:40.5841487 +0000 UTC
collector | Value: 2
otel collector配置。亚马尔
receivers:
otlp:
protocols:
grpc:
exporters:
logging:
loglevel: debug
jaeger:
endpoint: jaeger:14250
insecure: true
prometheus:
endpoint: "0.0.0.0:8889"
extensions:
health_check:
pprof:
zpages:
processors:
batch:
service:
extensions: [health_check,pprof,zpages]
pipelines:
traces:
receivers: [otlp]
exporters: [logging, jaeger]
processors: [batch]
metrics:
receivers: [otlp]
exporters: [logging, prometheus]
processors: [batch]
logs:
receivers: [otlp]
exporters: [logging]
processors: [batch]
prometheus.yaml
scrape_configs:
- job_name: 'otel-collector'
scrape_interval: 5s
static_configs:
- targets: ['collector:8889']
希望了解如何正确查找或导出资源标签,以获得正确的指标,谢谢
默认情况下,禁用资源属性到指标标签的转换。请将otel配置更新为以下内容,以查看资源属性为prom UI。
receivers:
otlp:
protocols:
grpc:
exporters:
logging:
loglevel: debug
jaeger:
endpoint: jaeger:14250
insecure: true
prometheus:
endpoint: "0.0.0.0:8889"
resource_to_telemetry_conversion:
enabled: true
extensions:
health_check:
pprof:
zpages:
processors:
batch:
service:
extensions: [health_check,pprof,zpages]
pipelines:
traces:
receivers: [otlp]
exporters: [logging, jaeger]
processors: [batch]
metrics:
receivers: [otlp]
exporters: [logging, prometheus]
processors: [batch]
logs:
receivers: [otlp]
exporters: [logging]
processors: [batch]
问题内容: 我知道还有其他针对同一问题的问题,但问题是解决方案对我不起作用。我有一个小工具,它应该读取我想拥有的文件并将其打包为资源,并依赖于其他我希望将其作为jar而不是单个类的项目(我正在使用Eclipse Helios)。 作为Eclipse中的应用程序,我可以通过以下方式访问资源 当且仅当将资源文件夹放置在输出路径(已编译的源)下时,并且如果将其放置在src文件夹中时,则不是这样。 当我打
问题内容: 我有全部传播异常的方法,然后在一个地方处理,但是我意识到了一些事情。 假设我有这样的方法 我的问题是,如果doSometing()方法引发异常,该语句将不会关闭,但我不想在那里处理异常。尝试并捕获只会抛出异常并最终关闭语句的正确方法吗? 问题答案:
问题内容: 在清理一些代码时,FindBugs向我介绍了一些使用Connection,CallableStatement和ResultSet对象的JDBC代码。这是该代码的一个片段: FindBugs指出这些应该在finally块内。我开始重构我的代码来做到这一点,我开始想知道如何在finally块中处理代码。 Connection对象的CallableStatement的创建可能会引发异常,而我
问题内容: 有人可以为我提供关于类对象的一些指导,以及如何在我的项目中的另一个对象中引用它吗? 这是我的对象-request-api.js(注意:我知道它还没有进行很多操作,但是我想走路之前要走路) 这是我试图在其中引用的React Class组件: 我的React Component Class对象出现错误: 谁能为我提供一些见识/帮助? 问题答案: 由于不是静态方法,因此您需要先创建的实例,然
注意:我知道有很多关于这个主题的帖子,我已经审阅了相当多的没有成功(请看我在这篇文章底部的参考资料)。 我正试图使用Visual Studio代码在TypeScript中运行一个非常简单的测试,其中我在一个文件中声明一个类并将其导入到另一个文件中。但是,我仍然遇到一个问题,我正在导入的文件无法识别我从另一个文件导出的类的方法。 此时我收到的确切错误消息是: [ts]属性“Get FirstName
环境:JSF2.1.7Seam2.3.0JBoss5.1.2 我的应用程序有一个需要本地化的字符串 “我同意WorldSite的隐私政策和Cookie通知” 斜体的隐私政策和Cookie通知是指向其他页面的超链接。 最初我们的facets是这样设置的: 注意:我们已经准备好了URL重写,需要/jsf/Notice。xhtml并重写为 这允许对各个键进行零碎的转换 但这需要一些语言的变通方法(在“i