Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[exporter/datadog] Add telemetry metric for runtime metrics #23138

Merged
Prev Previous commit
Next Next commit
PR comments
  • Loading branch information
liustanley committed Jun 8, 2023
commit c1b4f9d085c98d26b01a8b658cbcaa9bcf52b4f4
7 changes: 4 additions & 3 deletions exporter/datadogexporter/internal/metrics/consumer.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,22 +55,23 @@ func (c *Consumer) toDataType(dt metrics.DataType) (out datadogV2.MetricIntakeTy

// runningMetrics gets the running metrics for the exporter.
func (c *Consumer) runningMetrics(timestamp uint64, buildInfo component.BuildInfo, metadata metrics.Metadata) (series []datadogV2.MetricSeries) {
buildTags := TagsFromBuildInfo(buildInfo)
for host := range c.seenHosts {
// Report the host as running
runningMetric := DefaultMetrics("metrics", host, timestamp, TagsFromBuildInfo(buildInfo))
runningMetric := DefaultMetrics("metrics", host, timestamp, buildTags)
series = append(series, runningMetric...)
}

for tag := range c.seenTags {
runningMetrics := DefaultMetrics("metrics", "", timestamp, TagsFromBuildInfo(buildInfo))
runningMetrics := DefaultMetrics("metrics", "", timestamp, buildTags)
for i := range runningMetrics {
runningMetrics[i].Tags = append(runningMetrics[i].Tags, tag)
}
series = append(series, runningMetrics...)
}

for _, lang := range metadata.Languages {
tags := append(TagsFromBuildInfo(buildInfo), "language:"+lang)
tags := append(buildTags, "language:"+lang)
liustanley marked this conversation as resolved.
Show resolved Hide resolved
runningMetric := DefaultMetrics("runtime_metrics", "", timestamp, tags)
series = append(series, runningMetric...)
}
Expand Down
8 changes: 3 additions & 5 deletions exporter/datadogexporter/internal/metrics/consumer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -123,18 +123,16 @@ func TestTagsMetrics(t *testing.T) {
}

func TestConsumeAPMStats(t *testing.T) {
metadata := metrics.Metadata{
Languages: nil,
}
var md metrics.Metadata
c := NewConsumer()
for _, sp := range testutil.StatsPayloads {
c.ConsumeAPMStats(sp)
}
require.Len(t, c.as, len(testutil.StatsPayloads))
require.ElementsMatch(t, c.as, testutil.StatsPayloads)
_, _, out := c.All(0, component.BuildInfo{}, []string{}, metadata)
_, _, out := c.All(0, component.BuildInfo{}, []string{}, md)
require.ElementsMatch(t, out, testutil.StatsPayloads)
_, _, out = c.All(0, component.BuildInfo{}, []string{"extra:key"}, metadata)
_, _, out = c.All(0, component.BuildInfo{}, []string{"extra:key"}, md)
var copies []pb.ClientStatsPayload
for _, sp := range testutil.StatsPayloads {
sp.Tags = append(sp.Tags, "extra:key")
Expand Down
5 changes: 3 additions & 2 deletions exporter/datadogexporter/traces_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,14 +115,15 @@ func (exp *traceExporter) consumeTraces(

func (exp *traceExporter) exportUsageMetrics(ctx context.Context, hosts map[string]struct{}, tags map[string]struct{}) {
now := pcommon.NewTimestampFromTime(time.Now())
buildTags := metrics.TagsFromBuildInfo(exp.params.BuildInfo)
var err error
if isMetricExportV2Enabled() {
series := make([]datadogV2.MetricSeries, 0, len(hosts)+len(tags))
for host := range hosts {
series = append(series, metrics.DefaultMetrics("traces", host, uint64(now), metrics.TagsFromBuildInfo(exp.params.BuildInfo))...)
series = append(series, metrics.DefaultMetrics("traces", host, uint64(now), buildTags)...)
}
for tag := range tags {
ms := metrics.DefaultMetrics("traces", "", uint64(now), metrics.TagsFromBuildInfo(exp.params.BuildInfo))
ms := metrics.DefaultMetrics("traces", "", uint64(now), buildTags)
for i := range ms {
ms[i].Tags = append(ms[i].Tags, tag)
}
Expand Down
Loading