我想发送自定义指标使用io.micrometer.datadog.DatadogMeter注册表到datadog.下面是代码片段的方法,我在其中发出指标到Datadog.
@Override
public void emitMetrices(Map<String, String> dataPoints) {
try {
logger.info("inside emitMetrices from monitoring service with enableCustomMetrics: {}",
enableCustomMetrics);
if (!isEnabled()) {
logger.warn("Metrics are diabled");
return;
}
// user supplied metrics
Set<Tag> tags = new LinkedHashSet<Tag>();
Set<Entry<String, String>> dataPointEntries = dataPoints.entrySet();
for (Entry<String, String> entry : dataPointEntries) {
String key = entry.getKey() == null ? MetricConstants.UNKNOWN_TEXT : entry.getKey();
String value = entry.getValue() == null ? MetricConstants.UNKNOWN_TEXT : entry.getValue();
tags.add(new ImmutableTag(key, value));
}
String tenantMoniker = MetricConstants.UNKNOWN_TEXT;
String stackName = MetricConstants.UNKNOWN_TEXT;
TenantDescriptor tenant = TenantContextHolder.get();
if (tenant != null) {
tenantMoniker = tenant.getTenantMoniker();
stackName = tenant.getTierName();
} else {
logger.warn("Tenant is not available");
}
Tag tenantTag = new ImmutableTag(MetricConstants.TENANT_MONIKER, tenantMoniker);
Tag stackNameTag = new ImmutableTag(MetricConstants.STACK_NAME, stackName);
Tag serviceNameTag = new ImmutableTag(MetricConstants.SERVICE_NAME, serviceName);
tags.add(tenantTag);
tags.add(stackNameTag);
tags.add(serviceNameTag);
logger.info("sending metric to datadog");
Counter counter = meterRegistry.counter(METRIC_NAME, tags);
counter.increment();
logger.info("metric sent successfully: {}", METRIC_NAME);
} catch (Exception e) {
logger.error("Error publishing metrics", e);
}
}
我可以看到日志“metric sent successfully”,没有错误,但这个自定义指标没有显示在Datadog UI的metrics summary下。我错过什么了吗?
MeterRegistry已经实现了如何发送自定义度量(发布到DataDog)参见代码https://github.com/micrometer-metrics/micrometer/blob/master/implementations/micrometer-registry-datadog/src/main/java/io/micrometer/datadog/DatadogMeterRegistry.java#L133
看起来您正在尝试向每个指标添加公共标签。也许您不应该实现自己的DataDog注册表,而是使用提供的注册表通过配置发送指标并设置公共标签:
registry.config().commonTags(Arrays.asList(
Tag.of(MetricConstants.TENANT_MONIKER, tenant.getTenantMoniker()),
Tag.of(MetricConstants.STACK_NAME, stackName)
));
我正在使用docker运行datadog代理 我想使用dogstatsd发送自定义指标。当我运行 我可以在wireshark中看到,udp数据包成功地从源到目标,但这个指标没有提交给datadog。我缺少一些配置吗?
我有一个datadog计数度量,我想创建一个新的度量,从中显示度量上两个代理点之间的差异,因此我可以看到点之间的变化。 有没有办法使用datadog仪表板从另一个指标创建一个指标。
考虑到以下情况: lambda通过SQS接收事件 现在我们监控一个自定义的错误计数指标,如。这为我们提供了错误发生次数的确切数字-独立于特定实体:如果一个实体不能像100次那样被处理,那么度量值将是。 不过,我想要的是一个基于UUID的独特度量。例子: id为123的实体失败10次 id为456的实体成功 id为789的实体失败20次 然后我想要一个值为的度量,因为流程只对两个实体失败(而不是像现
我正在利用dogstatsd方法,使用千分尺将指标发送给datadog。我获得了正常的指标,如计数器和计量器,但我无法生成事件。有办法生成datadog事件吗?
我正在尝试集成statsd datadog。 我已经用-e dd_DOGSTATSD_NON_LOCAL_TRAFFIC=“true”启动了dd代理容器,apiKey也正确(容器日志证实了这一点) 我正在使用官方代码示例测试集成 在datadog仪表板上的metrics explorer中,我看到数据为 问题 但无法在datadog仪表板上的任何地方找到我推送的确切指标,如何通过statsd查看我
所以我对度量和测微计是新手。我遵循了本教程,在本教程中,我们设置了一些基本的仪表,如计数器和仪表,并公开了这些指标。当我点击endpoint时,我能够看到指标。我可以在那里看到我的自定义仪表。 所以现在我尝试将指标公开给datadog。我导入了以下依赖项: 并且在我的应用程序属性文件上也有这个: 我知道我没有包括任何数据的url或任何类似的内容,但是我的印象是,我可以通过访问像< code>/ac