diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 3f206b36cb10..ac968c1bb29b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,23 +5,23 @@ updates: - package-ecosystem: "github-actions" directory: "/" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "docker" directory: "/" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/cmd/configschema" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/cmd/mdatagen" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/cmd/telemetrygen" schedule: @@ -33,87 +33,87 @@ updates: - package-ecosystem: "gomod" directory: "/examples/demo/client" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/examples/demo/server" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/alibabacloudlogserviceexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/awscloudwatchlogsexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/awsemfexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/awskinesisexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/awsxrayexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/azuremonitorexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/carbonexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/clickhouseexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/coralogixexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/datadogexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/dynatraceexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/elasticsearchexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/f5cloudexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/fileexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/googlecloudexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/googlecloudpubsubexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/googlemanagedprometheusexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/humioexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/influxdbexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/instanaexporter" schedule: @@ -121,27 +121,31 @@ updates: - package-ecosystem: "gomod" directory: "/exporter/jaegerexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/jaegerthrifthttpexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/kafkaexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/loadbalancingexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/logzioexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/lokiexporter" schedule: - interval: "weekly" + interval: "monthly" + - package-ecosystem: "gomod" + directory: "/exporter/observiqexporter" + schedule: + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/mezmoexporter" schedule: @@ -149,19 +153,19 @@ updates: - package-ecosystem: "gomod" directory: "/exporter/opencensusexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/parquetexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/prometheusexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/prometheusremotewriteexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/pulsarexporter" schedule: @@ -169,59 +173,59 @@ updates: - package-ecosystem: "gomod" directory: "/exporter/sapmexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/sentryexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/signalfxexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/skywalkingexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/splunkhecexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/sumologicexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/tanzuobservabilityexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/tencentcloudlogserviceexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/exporter/zipkinexporter" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/asapauthextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/awsproxy" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/basicauthextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/bearertokenauthextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/fluentbitextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/headerssetter" schedule: @@ -229,51 +233,55 @@ updates: - package-ecosystem: "gomod" directory: "/extension/healthcheckextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/httpforwarder" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/jaegerremotesampling" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/oauth2clientauthextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer/dockerobserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer/ecsobserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer/ecstaskobserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer/hostobserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/observer/k8sobserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/oidcauthextension" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/pprofextension" schedule: - interval: "weekly" + interval: "monthly" + - package-ecosystem: "gomod" + directory: "/extension/sigv4authextension" + schedule: + interval: "monthly" - package-ecosystem: "gomod" directory: "/extension/sigv4authextension" schedule: @@ -281,71 +289,71 @@ updates: - package-ecosystem: "gomod" directory: "/extension/storage" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/awsutil" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/containerinsight" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/cwlogs" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/ecsutil" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/k8s" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/metrics" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/proxy" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/xray" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/xray/testdata/sampleapp" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/aws/xray/testdata/sampleserver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/common" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/containertest" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/coreinternal" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/docker" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/k8sconfig" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/kubelet" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/metadataproviders" schedule: @@ -353,35 +361,35 @@ updates: - package-ecosystem: "gomod" directory: "/internal/scrapertest" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/sharedcomponent" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/splunk" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/internal/tools" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/batchperresourceattr" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/batchpersignal" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/experimentalmetricmetadata" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/resourcetotelemetry" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/stanza" schedule: @@ -393,11 +401,11 @@ updates: - package-ecosystem: "gomod" directory: "/pkg/translator/jaeger" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/translator/opencensus" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/translator/prometheus" schedule: @@ -405,15 +413,15 @@ updates: - package-ecosystem: "gomod" directory: "/pkg/translator/prometheusremotewrite" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/translator/signalfx" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/translator/zipkin" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/pkg/winperfcounters" schedule: @@ -421,31 +429,31 @@ updates: - package-ecosystem: "gomod" directory: "/processor/attributesprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/cumulativetodeltaprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/deltatorateprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/filterprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/groupbyattrsprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/groupbytraceprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/k8sattributesprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/logstransformprocessor" schedule: @@ -453,31 +461,31 @@ updates: - package-ecosystem: "gomod" directory: "/processor/metricsgenerationprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/metricstransformprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/probabilisticsamplerprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/redactionprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/resourcedetectionprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/resourceprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/routingprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/schemaprocessor" schedule: @@ -489,19 +497,19 @@ updates: - package-ecosystem: "gomod" directory: "/processor/spanmetricsprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/spanprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/tailsamplingprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/processor/transformprocessor" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/activedirectorydsreceiver" schedule: @@ -513,23 +521,23 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/apachereceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/awscontainerinsightreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/awsecscontainermetricsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/awsfirehosereceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/awsxrayreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/azureblobreceiver" schedule: @@ -545,7 +553,7 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/carbonreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/chronyreceiver" schedule: @@ -553,27 +561,27 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/cloudfoundryreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/collectdreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/couchdbreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/dockerstatsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/dotnetdiagnosticsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/elasticsearchreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/expvarreceiver" schedule: @@ -581,7 +589,7 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/filelogreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/flinkmetricsreceiver" schedule: @@ -589,19 +597,19 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/fluentforwardreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/googlecloudpubsubreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/googlecloudspannerreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/hostmetricsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/iisreceiver" schedule: @@ -609,59 +617,59 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/influxdbreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/jaegerreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/jmxreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/journaldreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/k8sclusterreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/k8seventsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/kafkametricsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/kafkareceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/kubeletstatsreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/memcachedreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/mongodbatlasreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/mongodbreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/mysqlreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/nginxreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/nsxtreceiver" schedule: @@ -669,7 +677,7 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/opencensusreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/otlpjsonfilereceiver" schedule: @@ -677,19 +685,19 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/podmanreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/postgresqlreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/prometheusexecreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/prometheusreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/pulsarreceiver" schedule: @@ -697,15 +705,15 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/rabbitmqreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/receivercreator" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/redisreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/riakreceiver" schedule: @@ -717,19 +725,23 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/sapmreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/signalfxreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/simpleprometheusreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/simpleprometheusreceiver/examples/federation/prom-counter" schedule: - interval: "weekly" + interval: "monthly" + - package-ecosystem: "gomod" + directory: "/receiver/skywalkingreceiver" + schedule: + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/skywalkingreceiver" schedule: @@ -741,7 +753,7 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/splunkhecreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/sqlqueryreceiver" schedule: @@ -753,19 +765,19 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/statsdreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/syslogreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/tcplogreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/udplogreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/vcenterreceiver" schedule: @@ -773,7 +785,7 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/wavefrontreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/windowseventlogreceiver" schedule: @@ -781,20 +793,24 @@ updates: - package-ecosystem: "gomod" directory: "/receiver/windowsperfcountersreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/zipkinreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/receiver/zookeeperreceiver" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/testbed" schedule: - interval: "weekly" + interval: "monthly" - package-ecosystem: "gomod" directory: "/testbed/mockdatareceivers/mockawsxrayreceiver" schedule: - interval: "weekly" + interval: "monthly" + - package-ecosystem: "gomod" + directory: "/tracegen" + schedule: + interval: "monthly" diff --git a/Makefile b/Makefile index 0ca4d42b2fdc..30d2fbeadac8 100644 --- a/Makefile +++ b/Makefile @@ -162,23 +162,23 @@ gendependabot: @echo " - package-ecosystem: \"github-actions\"" >> ${DEPENDABOT_PATH} @echo " directory: \"/\"" >> ${DEPENDABOT_PATH} @echo " schedule:" >> ${DEPENDABOT_PATH} - @echo " interval: \"weekly\"" >> ${DEPENDABOT_PATH} + @echo " interval: \"monthly\"" >> ${DEPENDABOT_PATH} @echo "Add entry for \"/\" docker" @echo " - package-ecosystem: \"docker\"" >> ${DEPENDABOT_PATH} @echo " directory: \"/\"" >> ${DEPENDABOT_PATH} @echo " schedule:" >> ${DEPENDABOT_PATH} - @echo " interval: \"weekly\"" >> ${DEPENDABOT_PATH} + @echo " interval: \"monthly\"" >> ${DEPENDABOT_PATH} @echo "Add entry for \"/\" gomod" @echo " - package-ecosystem: \"gomod\"" >> ${DEPENDABOT_PATH} @echo " directory: \"/\"" >> ${DEPENDABOT_PATH} @echo " schedule:" >> ${DEPENDABOT_PATH} - @echo " interval: \"weekly\"" >> ${DEPENDABOT_PATH} + @echo " interval: \"monthly\"" >> ${DEPENDABOT_PATH} @set -e; for dir in $(NONROOT_MODS); do \ echo "Add entry for \"$${dir:1}\""; \ echo " - package-ecosystem: \"gomod\"" >> ${DEPENDABOT_PATH}; \ echo " directory: \"$${dir:1}\"" >> ${DEPENDABOT_PATH}; \ echo " schedule:" >> ${DEPENDABOT_PATH}; \ - echo " interval: \"weekly\"" >> ${DEPENDABOT_PATH}; \ + echo " interval: \"monthly\"" >> ${DEPENDABOT_PATH}; \ done # Define a delegation target for each module diff --git a/processor/probabilisticsamplerprocessor/config.go b/processor/probabilisticsamplerprocessor/config.go index d7dd5dada8c0..daa6904730d4 100644 --- a/processor/probabilisticsamplerprocessor/config.go +++ b/processor/probabilisticsamplerprocessor/config.go @@ -16,12 +16,16 @@ package probabilisticsamplerprocessor // import "github.com/open-telemetry/opent import ( "go.opentelemetry.io/collector/config" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/processor/filterconfig" ) // Config has the configuration guiding the trace sampler processor. type Config struct { config.ProcessorSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct + filterconfig.MatchConfig `mapstructure:",squash"` + // SamplingPercentage is the percentage rate at which traces are going to be sampled. Defaults to zero, i.e.: no sample. // Values greater or equal 100 are treated as "sample all traces". SamplingPercentage float32 `mapstructure:"sampling_percentage"` diff --git a/processor/probabilisticsamplerprocessor/go.mod b/processor/probabilisticsamplerprocessor/go.mod index 647e1032294d..d5d1cb7e03ac 100644 --- a/processor/probabilisticsamplerprocessor/go.mod +++ b/processor/probabilisticsamplerprocessor/go.mod @@ -13,16 +13,17 @@ require ( require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/knadh/koanf v1.4.3 // indirect - github.com/kr/pretty v0.3.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/spf13/cast v1.5.0 // indirect go.opencensus.io v0.23.0 // indirect go.opentelemetry.io/otel v1.10.0 // indirect go.opentelemetry.io/otel/metric v0.32.1 // indirect diff --git a/processor/probabilisticsamplerprocessor/go.sum b/processor/probabilisticsamplerprocessor/go.sum index 28b488ba4287..636c775d6e88 100644 --- a/processor/probabilisticsamplerprocessor/go.sum +++ b/processor/probabilisticsamplerprocessor/go.sum @@ -33,7 +33,6 @@ github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGX github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -46,6 +45,7 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -65,6 +65,7 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -156,11 +157,9 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= -github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= @@ -230,7 +229,6 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= -github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= @@ -238,6 +236,8 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -422,10 +422,8 @@ google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqw gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/processor/probabilisticsamplerprocessor/probabilisticsampler.go b/processor/probabilisticsamplerprocessor/probabilisticsampler.go index aae2f705dd62..6911291f5eec 100644 --- a/processor/probabilisticsamplerprocessor/probabilisticsampler.go +++ b/processor/probabilisticsamplerprocessor/probabilisticsampler.go @@ -23,6 +23,8 @@ import ( "go.opentelemetry.io/collector/pdata/pcommon" "go.opentelemetry.io/collector/pdata/ptrace" "go.opentelemetry.io/collector/processor/processorhelper" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/processor/filterspan" ) // samplingPriority has the semantic result of parsing the "sampling.priority" @@ -52,15 +54,30 @@ const ( type tracesamplerprocessor struct { scaledSamplingRate uint32 hashSeed uint32 + include filterspan.Matcher + exclude filterspan.Matcher } // newTracesProcessor returns a processor.TracesProcessor that will perform head sampling according to the given // configuration. + func newTracesProcessor(ctx context.Context, set component.ProcessorCreateSettings, cfg *Config, nextConsumer consumer.Traces) (component.TracesProcessor, error) { + + include, err := filterspan.NewMatcher(cfg.Include) + if err != nil { + return nil, err + } + exclude, err := filterspan.NewMatcher(cfg.Exclude) + if err != nil { + return nil, err + } + tsp := &tracesamplerprocessor{ // Adjust sampling percentage on private so recalculations are avoided. scaledSamplingRate: uint32(cfg.SamplingPercentage * percentageScaleFactor), hashSeed: cfg.HashSeed, + include: include, + exclude: exclude, } return processorhelper.NewTracesProcessor( @@ -76,6 +93,9 @@ func (tsp *tracesamplerprocessor) processTraces(_ context.Context, td ptrace.Tra td.ResourceSpans().RemoveIf(func(rs ptrace.ResourceSpans) bool { rs.ScopeSpans().RemoveIf(func(ils ptrace.ScopeSpans) bool { ils.Spans().RemoveIf(func(s ptrace.Span) bool { + if filterspan.SkipSpan(tsp.include, tsp.exclude, s, rs.Resource(), ils.Scope()) { + return false + } sp := parseSpanSamplingPriority(s) if sp == doNotSampleSpan { // The OpenTelemetry mentions this as a "hint" we take a stronger diff --git a/processor/spanmetricsprocessor/config.go b/processor/spanmetricsprocessor/config.go index 5b2bc632d577..a5cea2ff31de 100644 --- a/processor/spanmetricsprocessor/config.go +++ b/processor/spanmetricsprocessor/config.go @@ -20,6 +20,8 @@ import ( "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/pdata/pmetric" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/processor/filterconfig" ) const ( @@ -37,6 +39,8 @@ type Dimension struct { type Config struct { config.ProcessorSettings `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct + filterconfig.MatchConfig `mapstructure:",squash"` + // MetricsExporter is the name of the metrics exporter to use to ship metrics. MetricsExporter string `mapstructure:"metrics_exporter"` diff --git a/processor/spanmetricsprocessor/go.mod b/processor/spanmetricsprocessor/go.mod index 8b53c3c36d96..dbf09689c33d 100644 --- a/processor/spanmetricsprocessor/go.mod +++ b/processor/spanmetricsprocessor/go.mod @@ -6,8 +6,10 @@ require ( github.com/hashicorp/golang-lru v0.5.4 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerexporter v0.61.0 github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.61.0 + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.61.0 github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.61.0 github.com/stretchr/testify v1.8.0 + go.opencensus.io v0.23.0 go.opentelemetry.io/collector v0.61.0 go.opentelemetry.io/collector/pdata v0.61.0 go.opentelemetry.io/collector/semconv v0.61.0 @@ -31,6 +33,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect github.com/gorilla/handlers v1.5.1 // indirect @@ -50,7 +53,6 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/mostynb/go-grpc-compression v1.1.17 // indirect - github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.61.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.61.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.61.0 // indirect github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.61.0 // indirect @@ -73,7 +75,6 @@ require ( github.com/subosito/gotenv v1.3.0 // indirect github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - go.opencensus.io v0.23.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.36.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.36.1 // indirect go.opentelemetry.io/otel v1.10.0 // indirect diff --git a/processor/spanmetricsprocessor/go.sum b/processor/spanmetricsprocessor/go.sum index 35791dabfe0f..84193c519866 100644 --- a/processor/spanmetricsprocessor/go.sum +++ b/processor/spanmetricsprocessor/go.sum @@ -144,6 +144,7 @@ github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfU github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= diff --git a/processor/spanmetricsprocessor/processor.go b/processor/spanmetricsprocessor/processor.go index 41b619debe95..512eb0e1ec53 100644 --- a/processor/spanmetricsprocessor/processor.go +++ b/processor/spanmetricsprocessor/processor.go @@ -17,12 +17,15 @@ package spanmetricsprocessor // import "github.com/open-telemetry/opentelemetry- import ( "context" "fmt" + "log" "sort" "strings" "sync" "time" "unicode" + "go.opencensus.io/stats" + "go.opencensus.io/stats/view" "go.opentelemetry.io/collector/component" "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/consumer" @@ -33,6 +36,7 @@ import ( "go.uber.org/multierr" "go.uber.org/zap" + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/processor/filterspan" "github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanmetricsprocessor/internal/cache" ) @@ -51,8 +55,42 @@ var ( defaultLatencyHistogramBucketsMs = []float64{ 2, 4, 6, 8, 10, 50, 100, 200, 400, 800, 1000, 1400, 2000, 5000, 10_000, 15_000, } + + dimensionsCacheSize = stats.Int64("spanmetrics_dimensions_cache_entries", "size of metricKeyToDimensions LRU cache", stats.UnitDimensionless) + uniqueTimeSeriesCount = stats.Int64("spanmetrics_unique_time_series", "number of unique time series.", stats.UnitDimensionless) + spanIngestedCount = stats.Int64("spanmetrics_spans_ingested_total", "number of spans ingested", stats.UnitDimensionless) + spanProcessedCount = stats.Int64("spanmetrics_spans_processed_total", "number of spans processed", stats.UnitDimensionless) ) +type MetricKeyError struct { + key metricKey +} + +func (r *MetricKeyError) Error() string { + return fmt.Sprintf("value not found in metricKeyToDimensions cache by key %q", r.key) +} + +func metricViews() []*view.View { + return []*view.View{ + { + Measure: dimensionsCacheSize, + Aggregation: view.LastValue(), + }, + { + Measure: uniqueTimeSeriesCount, + Aggregation: view.LastValue(), + }, + { + Measure: spanIngestedCount, + Aggregation: view.Sum(), + }, + { + Measure: spanProcessedCount, + Aggregation: view.Sum(), + }, + } +} + type exemplarData struct { traceID pcommon.TraceID value float64 @@ -87,18 +125,30 @@ type processorImp struct { // An LRU cache of dimension key-value maps keyed by a unique identifier formed by a concatenation of its values: // e.g. { "foo/barOK": { "serviceName": "foo", "operation": "/bar", "status_code": "OK" }} metricKeyToDimensions *cache.Cache + + include filterspan.Matcher + exclude filterspan.Matcher } func newProcessor(logger *zap.Logger, config config.Processor, nextConsumer consumer.Traces) (*processorImp, error) { logger.Info("Building spanmetricsprocessor") pConfig := config.(*Config) + include, err := filterspan.NewMatcher(pConfig.Include) + if err != nil { + return nil, err + } + exclude, err := filterspan.NewMatcher(pConfig.Exclude) + if err != nil { + return nil, err + } + bounds := defaultLatencyHistogramBucketsMs if pConfig.LatencyHistogramBuckets != nil { bounds = mapDurationsToMillis(pConfig.LatencyHistogramBuckets) } - if err := validateDimensions(pConfig.Dimensions, pConfig.skipSanitizeLabel); err != nil { + if err = validateDimensions(pConfig.Dimensions, pConfig.skipSanitizeLabel); err != nil { return nil, err } @@ -126,6 +176,8 @@ func newProcessor(logger *zap.Logger, config config.Processor, nextConsumer cons nextConsumer: nextConsumer, dimensions: pConfig.Dimensions, metricKeyToDimensions: metricKeyToDimensionsCache, + include: include, + exclude: exclude, }, nil } @@ -172,6 +224,12 @@ func validateDimensions(dimensions []Dimension, skipSanitizeLabel bool) error { return nil } +func init() { + if err := view.Register(metricViews()...); err != nil { + log.Fatalf(err.Error()) + } +} + // Start implements the component.Component interface. func (p *processorImp) Start(ctx context.Context, host component.Host) error { p.logger.Info("Starting spanmetricsprocessor") @@ -202,6 +260,7 @@ func (p *processorImp) Start(ctx context.Context, host component.Host) error { return fmt.Errorf("failed to find metrics exporter: '%s'; please configure metrics_exporter from one of: %+v", p.config.MetricsExporter, availableMetricsExporters) } + p.logger.Info("Started spanmetricsprocessor") return nil } @@ -228,7 +287,7 @@ func (p *processorImp) ConsumeTraces(ctx context.Context, traces ptrace.Traces) func (p *processorImp) tracesToMetrics(ctx context.Context, traces ptrace.Traces) error { p.lock.Lock() - p.aggregateMetrics(traces) + p.aggregateMetrics(ctx, traces) m, err := p.buildMetrics() // Exemplars are only relevant to this batch of traces, so must be cleared within the lock, @@ -340,14 +399,14 @@ func (p *processorImp) getDimensionsByMetricKey(k metricKey) (*pcommon.Map, erro return nil, fmt.Errorf("type assertion of metricKeyToDimensions attributes failed, the key is %q", k) } - return nil, fmt.Errorf("value not found in metricKeyToDimensions cache by key %q", k) + return nil, &MetricKeyError{k} } // aggregateMetrics aggregates the raw metrics from the input trace data. // Each metric is identified by a key that is built from the service name // and span metadata such as operation, kind, status_code and any additional // dimensions the user has configured. -func (p *processorImp) aggregateMetrics(traces ptrace.Traces) { +func (p *processorImp) aggregateMetrics(ctx context.Context, traces ptrace.Traces) { for i := 0; i < traces.ResourceSpans().Len(); i++ { rspans := traces.ResourceSpans().At(i) r := rspans.Resource() @@ -356,21 +415,33 @@ func (p *processorImp) aggregateMetrics(traces ptrace.Traces) { if !ok { continue } + serviceName := attr.Str() - p.aggregateMetricsForServiceSpans(rspans, serviceName) + p.aggregateMetricsForServiceSpans(ctx, rspans, serviceName) + } + + uniqueMetricsCount := len(p.callSum) + len(p.latencySum) + (len(p.latencyBucketCounts) * len(p.latencyBounds)) + + stats.Record(ctx, uniqueTimeSeriesCount.M(int64(uniqueMetricsCount)), dimensionsCacheSize.M(int64(p.metricKeyToDimensions.Len()))) } -func (p *processorImp) aggregateMetricsForServiceSpans(rspans ptrace.ResourceSpans, serviceName string) { +func (p *processorImp) aggregateMetricsForServiceSpans(ctx context.Context, rspans ptrace.ResourceSpans, serviceName string) { ilsSlice := rspans.ScopeSpans() + spanCounter := 0 for j := 0; j < ilsSlice.Len(); j++ { ils := ilsSlice.At(j) spans := ils.Spans() for k := 0; k < spans.Len(); k++ { span := spans.At(k) + if filterspan.SkipSpan(p.include, p.exclude, span, rspans.Resource(), ils.Scope()) { + continue + } p.aggregateMetricsForSpan(serviceName, span, rspans.Resource().Attributes()) + spanCounter++ } } + stats.Record(ctx, spanProcessedCount.M(int64(spanCounter))) } func (p *processorImp) aggregateMetricsForSpan(serviceName string, span ptrace.Span, resourceAttr pcommon.Map) {