chore: update OpenTelemetry plugins to latest release (#11943)

This commit is contained in:
Jacob Marble 2022-10-05 13:03:17 -07:00 committed by GitHub
parent dbf6796a89
commit 6606c5ed33
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 83 additions and 87 deletions

26
go.mod
View File

@ -89,9 +89,9 @@ require (
github.com/hashicorp/consul/api v1.15.2 github.com/hashicorp/consul/api v1.15.2
github.com/hashicorp/go-uuid v1.0.3 github.com/hashicorp/go-uuid v1.0.3
github.com/influxdata/go-syslog/v3 v3.0.0 github.com/influxdata/go-syslog/v3 v3.0.0
github.com/influxdata/influxdb-observability/common v0.2.22 github.com/influxdata/influxdb-observability/common v0.2.28
github.com/influxdata/influxdb-observability/influx2otel v0.2.21 github.com/influxdata/influxdb-observability/influx2otel v0.2.28
github.com/influxdata/influxdb-observability/otel2influx v0.2.22 github.com/influxdata/influxdb-observability/otel2influx v0.2.28
github.com/influxdata/line-protocol/v2 v2.2.1 github.com/influxdata/line-protocol/v2 v2.2.1
github.com/influxdata/tail v1.0.1-0.20210707231403-b283181d1fa7 github.com/influxdata/tail v1.0.1-0.20210707231403-b283181d1fa7
github.com/influxdata/toml v0.0.0-20190415235208-270119a8ce65 github.com/influxdata/toml v0.0.0-20190415235208-270119a8ce65
@ -158,10 +158,9 @@ require (
github.com/xdg/scram v1.0.5 github.com/xdg/scram v1.0.5
github.com/yuin/goldmark v1.4.13 github.com/yuin/goldmark v1.4.13
go.mongodb.org/mongo-driver v1.10.2 go.mongodb.org/mongo-driver v1.10.2
go.opentelemetry.io/collector/pdata v0.56.0 go.opentelemetry.io/collector/pdata v0.61.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.32.1
go.opentelemetry.io/otel/metric v0.31.0 go.opentelemetry.io/otel/sdk/metric v0.32.1
go.opentelemetry.io/otel/sdk/metric v0.31.0
go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
golang.org/x/net v0.0.0-20220909164309-bea034e7d591 golang.org/x/net v0.0.0-20220909164309-bea034e7d591
@ -188,6 +187,7 @@ require (
require ( require (
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.6 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.6 // indirect
github.com/gabriel-vasile/mimetype v1.4.0 // indirect github.com/gabriel-vasile/mimetype v1.4.0 // indirect
go.opentelemetry.io/otel/metric v0.32.1 // indirect
) )
require ( require (
@ -388,12 +388,12 @@ require (
github.com/yusufpapurcu/wmi v1.2.2 // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.etcd.io/etcd/api/v3 v3.5.1 // indirect go.etcd.io/etcd/api/v3 v3.5.1 // indirect
go.opencensus.io v0.23.0 // indirect go.opencensus.io v0.23.0 // indirect
go.opentelemetry.io/otel v1.8.0 // indirect go.opentelemetry.io/otel v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.8.0 // indirect go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.32.1 // indirect
go.opentelemetry.io/otel/sdk v1.8.0 // indirect go.opentelemetry.io/otel/sdk v1.10.0 // indirect
go.opentelemetry.io/otel/trace v1.8.0 // indirect go.opentelemetry.io/otel/trace v1.10.0 // indirect
go.opentelemetry.io/proto/otlp v0.18.0 // indirect go.opentelemetry.io/proto/otlp v0.19.0 // indirect
go.uber.org/atomic v1.9.0 // indirect go.uber.org/atomic v1.9.0 // indirect
go.uber.org/multierr v1.6.0 // indirect go.uber.org/multierr v1.6.0 // indirect
golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90 // indirect

52
go.sum
View File

@ -1363,12 +1363,12 @@ github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7m
github.com/influxdata/go-syslog/v3 v3.0.0 h1:jichmjSZlYK0VMmlz+k4WeOQd7z745YLsvGMqwtYt4I= github.com/influxdata/go-syslog/v3 v3.0.0 h1:jichmjSZlYK0VMmlz+k4WeOQd7z745YLsvGMqwtYt4I=
github.com/influxdata/go-syslog/v3 v3.0.0/go.mod h1:tulsOp+CecTAYC27u9miMgq21GqXRW6VdKbOG+QSP4Q= github.com/influxdata/go-syslog/v3 v3.0.0/go.mod h1:tulsOp+CecTAYC27u9miMgq21GqXRW6VdKbOG+QSP4Q=
github.com/influxdata/influxdb v1.8.4/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= github.com/influxdata/influxdb v1.8.4/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI=
github.com/influxdata/influxdb-observability/common v0.2.22 h1:QXVvuY/VgaTrC5gALrQntPC/eQ5txg1GJZ4OI4pScnc= github.com/influxdata/influxdb-observability/common v0.2.28 h1:kn3i4AjqNe/WEMrcINeuWd5xJe8fyK6g5rCDxBw8CbY=
github.com/influxdata/influxdb-observability/common v0.2.22/go.mod h1:bW4ZANSxOnZu49ZhxiqKRyiFj+pePFII8+JGzvbtTTU= github.com/influxdata/influxdb-observability/common v0.2.28/go.mod h1:Zn0qergkR7OQZv+KPLLFThJvOXBoj45nvqMIYn8Sw5w=
github.com/influxdata/influxdb-observability/influx2otel v0.2.21 h1:tmmLtJBEOU04+CLc1WsPSWVVW+BTmdmAlpgROlY/zog= github.com/influxdata/influxdb-observability/influx2otel v0.2.28 h1:EcmE4fAp6VjGUlRrW6csnIZTU+zWSXY3rBPu3RKnttI=
github.com/influxdata/influxdb-observability/influx2otel v0.2.21/go.mod h1:Bg6Pi3swyEv3kvl/+3odBLG+LzPXS38IW5EkW3Qs3wg= github.com/influxdata/influxdb-observability/influx2otel v0.2.28/go.mod h1:KN5pPyhZb027IBGoGNHVt6VqM7kZOcVnf6VudNGySSY=
github.com/influxdata/influxdb-observability/otel2influx v0.2.22 h1:GbugqGRMSttCEzfJaQjh/QSY1g2q642aa/TCUo++GT8= github.com/influxdata/influxdb-observability/otel2influx v0.2.28 h1:XLclpFnXj2a2Rpe45VAB5R3x0swzxrYcz6ZVMbvOBXM=
github.com/influxdata/influxdb-observability/otel2influx v0.2.22/go.mod h1:dlIflDYQNuDmEy0iuBE31VJnLJxj5SkEXZ0/2HDOeE0= github.com/influxdata/influxdb-observability/otel2influx v0.2.28/go.mod h1:tl5sHk8+kSl3QxbeIRDxODGG/bpw43gXE6FywDe7xTw=
github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk= github.com/influxdata/influxql v1.1.1-0.20200828144457-65d3ef77d385/go.mod h1:gHp9y86a/pxhjJ+zMjNXiQAA197Xk9wLxaz+fGG+kWk=
github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= github.com/influxdata/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE=
@ -2435,28 +2435,28 @@ go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk=
go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M=
go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E=
go.opentelemetry.io/collector v0.28.0/go.mod h1:AP/BTXwo1eedoJO7V+HQ68CSvJU1lcdqOzJCgt1VsNs= go.opentelemetry.io/collector v0.28.0/go.mod h1:AP/BTXwo1eedoJO7V+HQ68CSvJU1lcdqOzJCgt1VsNs=
go.opentelemetry.io/collector/pdata v0.56.0 h1:JD8KjQ7dNZ441xMuVZVu5NRYmkA4vOYGV7w8tkCdyrE= go.opentelemetry.io/collector/pdata v0.61.0 h1:jPUReUpR/D1xsigfRxyXA7cYMnXfnK+D7z61W6F9moo=
go.opentelemetry.io/collector/pdata v0.56.0/go.mod h1:mYcCREWiIJyHss0dbU+GSiz2tmGZ6u09vtfkKTciog4= go.opentelemetry.io/collector/pdata v0.61.0/go.mod h1:0hqgNMRneVXaLNelv3q0XKJbyBW9aMDwyC15pKd30+E=
go.opentelemetry.io/otel v0.7.0/go.mod h1:aZMyHG5TqDOXEgH2tyLiXSUKly1jT3yqE9PmrzIeCdo= go.opentelemetry.io/otel v0.7.0/go.mod h1:aZMyHG5TqDOXEgH2tyLiXSUKly1jT3yqE9PmrzIeCdo=
go.opentelemetry.io/otel v1.8.0 h1:zcvBFizPbpa1q7FehvFiHbQwGzmPILebO0tyqIR5Djg= go.opentelemetry.io/otel v1.10.0 h1:Y7DTJMR6zs1xkS/upamJYk0SxxN4C9AqRd77jmZnyY4=
go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ=
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.8.0 h1:ao8CJIShCaIbaMsGxy+jp2YHSudketpDgDRcbirov78= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0 h1:TaB+1rQhddO1sF71MpZOZAuSPW1klK2M8XxfrBMfK7Y=
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.8.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0 h1:H0+xwv4shKw0gfj/ZqR13qO2N/dBQogB1OcRjJjV39Y= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.32.1 h1:DQY4KNmy9Hu4SKAElPIp2DGmPZOgWmTurWhyd9yOAdM=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.31.0/go.mod h1:nkenGD8vcvs0uN6WhR90ZVHQlgDsRmXicnNadMnk+XQ= go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.32.1/go.mod h1:6FizIJscdUCUM5FP5JVh3FaB1Uku5Z7GapFvBOKERQg=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0 h1:BaQ2xM5cPmldVCMvbLoy5tcLUhXCtIhItDYBNw83B7Y= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.32.1 h1:tpZ/DKQTUTIwDK6amyBYS4oudtO+swZW2zBUbkBTDNo=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.31.0/go.mod h1:VRr8tlXQEsTdesDCh0qBe2iKDWhpi3ZqDYw6VlZ8MhI= go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.32.1/go.mod h1:A6awkKLPv8+5r7pSzwD21Qpt81i1mK1PK/7XwH/hHOk=
go.opentelemetry.io/otel/metric v0.31.0 h1:6SiklT+gfWAwWUR0meEMxQBtihpiEs4c+vL9spDTqUs= go.opentelemetry.io/otel/metric v0.32.1 h1:ftff5LSBCIDwL0UkhBuDg8j9NNxx2IusvJ18q9h6RC4=
go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A= go.opentelemetry.io/otel/metric v0.32.1/go.mod h1:iLPP7FaKMAD5BIxJ2VX7f2KTuz//0QK2hEUyti5psqQ=
go.opentelemetry.io/otel/sdk v1.8.0 h1:xwu69/fNuwbSHWe/0PGS888RmjWY181OmcXDQKu7ZQk= go.opentelemetry.io/otel/sdk v1.10.0 h1:jZ6K7sVn04kk/3DNUdJ4mqRlGDiXAVuIG+MMENpTNdY=
go.opentelemetry.io/otel/sdk v1.8.0/go.mod h1:uPSfc+yfDH2StDM/Rm35WE8gXSNdvCg023J6HeGNO0c= go.opentelemetry.io/otel/sdk v1.10.0/go.mod h1:vO06iKzD5baltJz1zarxMCNHFpUlUiOy4s65ECtn6kE=
go.opentelemetry.io/otel/sdk/metric v0.31.0 h1:2sZx4R43ZMhJdteKAlKoHvRgrMp53V1aRxvEf5lCq8Q= go.opentelemetry.io/otel/sdk/metric v0.32.1 h1:S6AqzulzGQl+sTpYeAoVLw1SJbc2LYuKCMUmfEKG+zM=
go.opentelemetry.io/otel/sdk/metric v0.31.0/go.mod h1:fl0SmNnX9mN9xgU6OLYLMBMrNAsaZQi7qBwprwO3abk= go.opentelemetry.io/otel/sdk/metric v0.32.1/go.mod h1:Nn+Nt/7cKzm5ISmvLzNO5RLf0Xuv8/Qo8fkpr0JDOzs=
go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOlHrfY= go.opentelemetry.io/otel/trace v1.10.0 h1:npQMbR8o7mum8uF95yFbOEJffhs1sbCOfDh8zAJiH5E=
go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM=
go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
go.opentelemetry.io/proto/otlp v0.18.0 h1:W5hyXNComRa23tGpKwG+FRAc4rfF6ZUg1JReK+QHS80= go.opentelemetry.io/proto/otlp v0.19.0 h1:IVN6GR+mhC4s5yfcTbmzHYODqvWAp3ZedA2SJPI1Nnw=
go.opentelemetry.io/proto/otlp v0.18.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= go.opentelemetry.io/proto/otlp v0.19.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM= go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM=
go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0=
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=

View File

@ -3,6 +3,7 @@ package opentelemetry
import ( import (
"context" "context"
"fmt" "fmt"
"go.opentelemetry.io/collector/pdata/plog/plogotlp" "go.opentelemetry.io/collector/pdata/plog/plogotlp"
"go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp" "go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp"
"go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp" "go.opentelemetry.io/collector/pdata/ptrace/ptraceotlp"
@ -16,7 +17,7 @@ type traceService struct {
writer *writeToAccumulator writer *writeToAccumulator
} }
var _ ptraceotlp.Server = (*traceService)(nil) var _ ptraceotlp.GRPCServer = (*traceService)(nil)
func newTraceService(logger common.Logger, writer *writeToAccumulator) *traceService { func newTraceService(logger common.Logger, writer *writeToAccumulator) *traceService {
converter := otel2influx.NewOtelTracesToLineProtocol(logger) converter := otel2influx.NewOtelTracesToLineProtocol(logger)
@ -36,7 +37,7 @@ type metricsService struct {
writer *writeToAccumulator writer *writeToAccumulator
} }
var _ pmetricotlp.Server = (*metricsService)(nil) var _ pmetricotlp.GRPCServer = (*metricsService)(nil)
var metricsSchemata = map[string]common.MetricsSchema{ var metricsSchemata = map[string]common.MetricsSchema{
"prometheus-v1": common.MetricsSchemaTelegrafPrometheusV1, "prometheus-v1": common.MetricsSchemaTelegrafPrometheusV1,
@ -69,7 +70,7 @@ type logsService struct {
writer *writeToAccumulator writer *writeToAccumulator
} }
var _ plogotlp.Server = (*logsService)(nil) var _ plogotlp.GRPCServer = (*logsService)(nil)
func newLogsService(logger common.Logger, writer *writeToAccumulator) *logsService { func newLogsService(logger common.Logger, writer *writeToAccumulator) *logsService {
converter := otel2influx.NewOtelLogsToLineProtocol(logger) converter := otel2influx.NewOtelLogsToLineProtocol(logger)

View File

@ -4,13 +4,11 @@ import (
"context" "context"
"net" "net"
"testing" "testing"
"time"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc"
"go.opentelemetry.io/otel/metric/global" "go.opentelemetry.io/otel/sdk/metric"
controller "go.opentelemetry.io/otel/sdk/metric/controller/basic"
processor "go.opentelemetry.io/otel/sdk/metric/processor/basic"
"go.opentelemetry.io/otel/sdk/metric/selector/simple"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/test/bufconn" "google.golang.org/grpc/test/bufconn"
@ -20,60 +18,55 @@ import (
) )
func TestOpenTelemetry(t *testing.T) { func TestOpenTelemetry(t *testing.T) {
// create mock OpenTelemetry client
mockListener := bufconn.Listen(1024 * 1024) mockListener := bufconn.Listen(1024 * 1024)
t.Cleanup(func() { _ = mockListener.Close() })
plugin := inputs.Inputs["opentelemetry"]().(*OpenTelemetry) plugin := inputs.Inputs["opentelemetry"]().(*OpenTelemetry)
plugin.listener = mockListener plugin.listener = mockListener
accumulator := new(testutil.Accumulator) accumulator := new(testutil.Accumulator)
err := plugin.Start(accumulator) require.NoError(t, plugin.Start(accumulator))
require.NoError(t, err)
t.Cleanup(plugin.Stop) t.Cleanup(plugin.Stop)
metricExporter, err := otlpmetricgrpc.New(context.Background(), ctx, cancel := context.WithTimeout(context.Background(), time.Second)
t.Cleanup(cancel)
metricExporter, err := otlpmetricgrpc.New(ctx,
otlpmetricgrpc.WithInsecure(), otlpmetricgrpc.WithInsecure(),
otlpmetricgrpc.WithDialOption( otlpmetricgrpc.WithDialOption(
grpc.WithBlock(), grpc.WithBlock(),
grpc.WithContextDialer(func(_ context.Context, _ string) (net.Conn, error) { grpc.WithContextDialer(func(ctx context.Context, _ string) (net.Conn, error) {
return mockListener.Dial() return mockListener.DialContext(ctx)
})), })),
) )
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { _ = metricExporter.Shutdown(context.Background()) }) t.Cleanup(func() { _ = metricExporter.Shutdown(ctx) })
pusher := controller.New( reader := metric.NewManualReader()
processor.NewFactory( mp := metric.NewMeterProvider(metric.WithReader(reader))
simple.NewWithHistogramDistribution(),
metricExporter,
),
controller.WithExporter(metricExporter),
)
err = pusher.Start(context.Background()) // set a metric value
require.NoError(t, err)
t.Cleanup(func() { _ = pusher.Stop(context.Background()) })
global.SetMeterProvider(pusher) meter := mp.Meter("library-name")
// write metrics
meter := global.MeterProvider().Meter("library-name")
counter, err := meter.SyncInt64().Counter("measurement-counter") counter, err := meter.SyncInt64().Counter("measurement-counter")
require.NoError(t, err) counter.Add(ctx, 7)
counter.Add(context.Background(), 7)
err = pusher.Stop(context.Background()) // write metrics through the telegraf OpenTelemetry input plugin
rm, err := reader.Collect(ctx)
require.NoError(t, err) require.NoError(t, err)
require.NoError(t, metricExporter.Export(ctx, rm))
// Shutdown // Shutdown
require.NoError(t, reader.Shutdown(ctx))
require.NoError(t, metricExporter.Shutdown(ctx))
plugin.Stop() plugin.Stop()
err = metricExporter.Shutdown(context.Background())
require.NoError(t, err)
// Check // Check
require.Empty(t, accumulator.Errors) require.Empty(t, accumulator.Errors)
require.Len(t, accumulator.Metrics, 1) require.Len(t, accumulator.Metrics, 1)
got := accumulator.Metrics[0] got := accumulator.Metrics[0]
require.Equal(t, "measurement-counter", got.Measurement) require.Equal(t, "measurement-counter", got.Measurement)

View File

@ -6,6 +6,7 @@ import (
"time" "time"
"github.com/influxdata/influxdb-observability/common" "github.com/influxdata/influxdb-observability/common"
"github.com/influxdata/telegraf" "github.com/influxdata/telegraf"
) )

View File

@ -3,11 +3,10 @@ package opentelemetry
import ( import (
"context" "context"
ntls "crypto/tls"
_ "embed" _ "embed"
"time" "time"
ntls "crypto/tls"
"github.com/influxdata/influxdb-observability/common" "github.com/influxdata/influxdb-observability/common"
"github.com/influxdata/influxdb-observability/influx2otel" "github.com/influxdata/influxdb-observability/influx2otel"
"go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp" "go.opentelemetry.io/collector/pdata/pmetric/pmetricotlp"
@ -45,7 +44,7 @@ type OpenTelemetry struct {
metricsConverter *influx2otel.LineProtocolToOtelMetrics metricsConverter *influx2otel.LineProtocolToOtelMetrics
grpcClientConn *grpc.ClientConn grpcClientConn *grpc.ClientConn
metricsServiceClient pmetricotlp.Client metricsServiceClient pmetricotlp.GRPCClient
callOptions []grpc.CallOption callOptions []grpc.CallOption
} }
@ -158,7 +157,7 @@ func (o *OpenTelemetry) Write(metrics []telegraf.Metric) error {
if len(o.Attributes) > 0 { if len(o.Attributes) > 0 {
for i := 0; i < md.Metrics().ResourceMetrics().Len(); i++ { for i := 0; i < md.Metrics().ResourceMetrics().Len(); i++ {
for k, v := range o.Attributes { for k, v := range o.Attributes {
md.Metrics().ResourceMetrics().At(i).Resource().Attributes().UpsertString(k, v) md.Metrics().ResourceMetrics().At(i).Resource().Attributes().PutString(k, v)
} }
} }
} }

View File

@ -13,30 +13,31 @@ import (
"github.com/influxdata/influxdb-observability/common" "github.com/influxdata/influxdb-observability/common"
"github.com/influxdata/influxdb-observability/influx2otel" "github.com/influxdata/influxdb-observability/influx2otel"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/testutil"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/metadata" "google.golang.org/grpc/metadata"
"github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/config"
"github.com/influxdata/telegraf/testutil"
) )
func TestOpenTelemetry(t *testing.T) { func TestOpenTelemetry(t *testing.T) {
expect := pmetric.NewMetrics() expect := pmetric.NewMetrics()
{ {
rm := expect.ResourceMetrics().AppendEmpty() rm := expect.ResourceMetrics().AppendEmpty()
rm.Resource().Attributes().InsertString("host.name", "potato") rm.Resource().Attributes().PutString("host.name", "potato")
rm.Resource().Attributes().InsertString("attr-key", "attr-val") rm.Resource().Attributes().PutString("attr-key", "attr-val")
ilm := rm.ScopeMetrics().AppendEmpty() ilm := rm.ScopeMetrics().AppendEmpty()
ilm.Scope().SetName("My Library Name") ilm.Scope().SetName("My Library Name")
m := ilm.Metrics().AppendEmpty() m := ilm.Metrics().AppendEmpty()
m.SetName("cpu_temp") m.SetName("cpu_temp")
m.SetDataType(pmetric.MetricDataTypeGauge) m.SetEmptyGauge()
dp := m.Gauge().DataPoints().AppendEmpty() dp := m.Gauge().DataPoints().AppendEmpty()
dp.Attributes().InsertString("foo", "bar") dp.Attributes().PutString("foo", "bar")
dp.SetTimestamp(pcommon.Timestamp(1622848686000000000)) dp.SetTimestamp(pcommon.Timestamp(1622848686000000000))
dp.SetDoubleVal(87.332) dp.SetDoubleValue(87.332)
} }
m := newMockOtelService(t) m := newMockOtelService(t)
t.Cleanup(m.Cleanup) t.Cleanup(m.Cleanup)
@ -79,7 +80,7 @@ func TestOpenTelemetry(t *testing.T) {
assert.JSONEq(t, string(expectJSON), string(gotJSON)) assert.JSONEq(t, string(expectJSON), string(gotJSON))
} }
var _ pmetricotlp.Server = (*mockOtelService)(nil) var _ pmetricotlp.GRPCServer = (*mockOtelService)(nil)
type mockOtelService struct { type mockOtelService struct {
t *testing.T t *testing.T
@ -129,7 +130,8 @@ func (m *mockOtelService) Address() string {
} }
func (m *mockOtelService) Export(ctx context.Context, request pmetricotlp.Request) (pmetricotlp.Response, error) { func (m *mockOtelService) Export(ctx context.Context, request pmetricotlp.Request) (pmetricotlp.Response, error) {
m.metrics = request.Metrics().Clone() m.metrics = pmetric.NewMetrics()
request.Metrics().CopyTo(m.metrics)
ctxMetadata, ok := metadata.FromIncomingContext(ctx) ctxMetadata, ok := metadata.FromIncomingContext(ctx)
assert.Equal(m.t, []string{"header1"}, ctxMetadata.Get("test")) assert.Equal(m.t, []string{"header1"}, ctxMetadata.Get("test"))
assert.True(m.t, ok) assert.True(m.t, ok)