我正在尝试从节点将度量导出到OpenTelemetry收集器容器。js应用程序,然后将其导出到New Relic。
我正在制作一个简单的请求计数器:
const exporter = new OTLPMetricExporter();
const meter = new MeterProvider({
exporter,
interval: 10 * 1000,
resource: new Resource({
[SemanticResourceAttributes.SERVICE_NAME]: 'otlp-service',
}),
}).getMeter('my-meter-name');
const requestCount = meter.createCounter('api.requests', {
description: 'Count all incoming requests to API.',
});
...
onResponseFinished(res, () => {
const statusCode = res.statusCode ? res.statusCode : 'N/A';
const labels = { statusCode };
requestCount.add(1, labels);
};
我想使用status code属性,以便能够在New Relic中按不同的状态代码进行刻面/分组。为此,我需要在每个请求旁边导出状态代码属性(标签),以便在New Relic中使用它们。但是,这些标签不会在OTLP中导出,也不会显示在日志导出器中。我已经阅读了export helpers上OpenTelemetry GitHub页面上的resource\u to\u telemetry\u conversion:enabled:true设置,并与Prometheus一起用于此StackOverflow问题,但是,将此属性添加到我的OTLP exporter配置会导致其由于配置文件无效而关闭;似乎它只是用于普罗米修斯,而不是一般用于OTLP。
这是我的otel配置。yml:
extensions:
health_check: {}
receivers:
otlp:
protocols:
grpc:
processors:
batch: # compresses data and reduces number of outgoing connections.
exporters:
logging:
logLevel: debug
otlp:
endpoint: https://otlp.nr-data.net:4317
headers:
api-key: $NEW_RELIC_API_KEY
service:
extensions: [health_check]
pipelines:
metrics:
receivers: [otlp]
processors: [batch]
exporters: [logging, otlp]
traces:
receivers: [otlp]
processors: [batch]
exporters: [logging, otlp]
logs:
receivers: [otlp]
processors: [batch]
exporters: [logging, otlp]
我正在使用WSL2和:
➜ ~ docker-compose --version
docker-compose version 1.29.2, build 5becea4c
➜ ~ node --version
v14.18.1
package.json摘录:
...
"@opentelemetry/api": "^1.0.4",
"@opentelemetry/exporter-metrics-otlp-grpc": "^0.27.0",
"@opentelemetry/resources": "^1.0.1",
"@opentelemetry/sdk-metrics-base": "^0.27.0",
"@opentelemetry/semantic-conventions": "^1.0.1",
...
我的问题是:需要更改哪些设置才能通过OTLP导出Metric属性,并使它们出现在New Relic中?
谢谢你
我发现这是由版本不匹配引起的,因为opentelemetry-js
库JS OTLP导出器仍然使用版本过低的原型。问题正在这个问题下进行跟踪。
我们将有一个高负荷的遥测服务。我正在寻找能够扩展收集器和后端(zipkin)的解决方案 有一种扩展zipkin的解决方案。看起来很简单-只需使用内部平衡 但是,我找不到使用多个openTelemetry收集器的示例。运行几个收集器实例没有什么问题,但我如何说“myApp”来平衡它们呢?在Exporters中没有这样的选项。
我正在尝试为Lightstep中的Hello world示例设置跟踪安装https://lightstep.com/blog/opentelemetry-nodejs/: 我的tracing.js如下: 我的收集器正在本地主机4317上侦听,配置文件如下: 我正在运行otelcontribcol\u darwin\u amd64版本23。它会将痕迹发送到我的logz。io帐户。它适用于Java和P
我在将开放遥测数据导出并发送到newRelic的GRPCendpoint时遇到问题。这是我尝试连接到newRelicendpoint的代码片段: 它卡在步道里了。新的。 我是开放遥测的新手,我读了打开的遥测留档,我可以在控制台中打印Otel数据,但是当我想将其导出到newrelic时,它不起作用。我也读了newRelic Otel留档,他们有一个导出器SDK但是它停止了,他们提供了这个新的GRPC
我已经运行了官方的Otel collector文档,并使用Docker和以下配置/代码文件运行了collector,但当应用程序尝试发布到/v1/tracesendpoint时,总能从collector获得404。我也尝试过各种代码示例,这篇文章,在macOS和Ubuntu上运行收集器,使用旧版本,但都没有成功。偶数<代码>卷曲-s-X柱'http://localhost:55681/v1/tra
我正在使用一个Java应用程序,并尝试使用OpenTelemetrys Java autoinstrumentation。看起来,autoinstrumentation只对来自应用程序本身的代码直接调用起作用,而依赖项没有被检测? 该项目使用一个依赖项,该依赖项本身使用Apache HttpClient向远程服务器发送请求。然而,这些请求似乎没有被检测。当直接在我的应用程序中执行请求时,它也能正常
如果我有一个垃圾收集器来跟踪分配的每个对象,并在它们不再有对它们的可用引用时立即释放它们,你还会有内存泄漏吗? 考虑到内存泄漏是指没有任何引用的分配,这不是不可能的吗?还是我遗漏了什么? 编辑:所以我认为内存泄漏是您在代码中不再引用的分配。您仍然可以引用的大量累积分配不是我在这里考虑的泄漏。 我也只是在谈论普通的G.C.,已经有一段时间了,但我知道像循环引用这样的案例不会把他们绊倒。我不需要任何语