From a7921d3fd5fb1629bca1b4725dd11e71115dc32a Mon Sep 17 00:00:00 2001 From: zeno-splunk Date: Fri, 23 Jun 2023 14:28:30 -0700 Subject: [PATCH] first commit --- .codecov.yml | 23 + .gitattributes | 6 + .github/CODEOWNERS | 161 + .github/ISSUE_TEMPLATE/bug_report.md | 33 + .github/ISSUE_TEMPLATE/feature_request.md | 20 + .github/ISSUE_TEMPLATE/new_component.md | 30 + .github/auto_assign.yml | 28 + .github/dependabot.yml | 692 ++ .github/pull_request_template.md | 9 + .github/workflows/auto-assign-owners.yml | 14 + .github/workflows/build-and-test-windows.yml | 40 + .github/workflows/build-and-test.yml | 490 + .github/workflows/changelog.yml | 33 + .github/workflows/codeql-analysis.yml | 30 + .github/workflows/load-tests.yml | 135 + .../workflows/prometheus-compliance-tests.yml | 52 + .../scripts/check-collector-module-version.sh | 82 + .github/workflows/scripts/set_release_tag.sh | 5 + .github/workflows/scripts/setup_e2e_tests.sh | 18 + .../scripts/setup_stability_tests.sh | 11 + .../scripts/verify-dist-files-exist.sh | 23 + .github/workflows/stability-tests.yml | 95 + .github/workflows/stale-pr.yaml | 18 + .github/workflows/tracegen.yml | 65 + .gitignore | 36 + .golangci.yml | 120 + CHANGELOG.md | 2032 +++++ CONTRIBUTING.md | 74 + LICENSE | 201 + Makefile | 316 + Makefile.Common | 123 + README.md | 112 + cmd/configschema/Makefile | 1 + cmd/configschema/README.md | 5 + cmd/configschema/comments.go | 88 + cmd/configschema/comments_test.go | 40 + cmd/configschema/common_test.go | 44 + cmd/configschema/configs.go | 125 + cmd/configschema/configs_test.go | 80 + cmd/configschema/docsgen/README.md | 44 + cmd/configschema/docsgen/docsgen/cli.go | 141 + cmd/configschema/docsgen/docsgen/cli_test.go | 161 + cmd/configschema/docsgen/docsgen/render.go | 78 + cmd/configschema/docsgen/docsgen/template.go | 70 + .../docsgen/docsgen/template_test.go | 44 + .../docsgen/testdata/otlp-receiver.json | 339 + .../docsgen/docsgen/testdata/test.tmpl | 1 + cmd/configschema/docsgen/main.go | 71 + cmd/configschema/fields.go | 172 + cmd/configschema/fields_test.go | 152 + cmd/configschema/go.mod | 805 ++ cmd/configschema/go.sum | 3534 ++++++++ cmd/configschema/resolver.go | 142 + cmd/configschema/resolver_test.go | 80 + cmd/mdatagen/Makefile | 1 + cmd/mdatagen/README.md | 19 + cmd/mdatagen/documentation.tmpl | 45 + cmd/mdatagen/go.mod | 34 + cmd/mdatagen/go.sum | 244 + cmd/mdatagen/lint.go | 74 + cmd/mdatagen/lint_test.go | 61 + cmd/mdatagen/loader.go | 277 + cmd/mdatagen/loader_test.go | 121 + cmd/mdatagen/main.go | 149 + cmd/mdatagen/main_test.go | 150 + cmd/mdatagen/metric-metadata.yaml | 50 + cmd/mdatagen/metricdata.go | 158 + cmd/mdatagen/metricdata_test.go | 49 + cmd/mdatagen/metrics.tmpl | 130 + cmd/mdatagen/metrics_v2.tmpl | 250 + cmd/mdatagen/testdata/all_options.yaml | 35 + cmd/mdatagen/testdata/documentation_v1.md | 20 + cmd/mdatagen/testdata/documentation_v2.md | 27 + cmd/mdatagen/testdata/no_enabled.yaml | 10 + cmd/mdatagen/testdata/no_metric_type.yaml | 7 + cmd/mdatagen/testdata/no_value_type.yaml | 10 + cmd/mdatagen/testdata/two_metric_types.yaml | 13 + .../testdata/unknown_metric_attribute.yaml | 11 + cmd/mdatagen/third_party/golint/LICENSE | 27 + cmd/mdatagen/third_party/golint/golint.go | 51 + cmd/otelcontribcol/Dockerfile | 15 + cmd/otelcontribcol/main.go | 55 + cmd/otelcontribcol/main_others.go | 24 + cmd/otelcontribcol/main_windows.go | 61 + examples/demo/.env | 2 + examples/demo/README.md | 53 + examples/demo/client/Dockerfile | 19 + examples/demo/client/Makefile | 1 + examples/demo/client/go.mod | 34 + examples/demo/client/go.sum | 471 + examples/demo/client/main.go | 216 + examples/demo/docker-compose.yaml | 62 + examples/demo/otel-collector-config.yaml | 43 + examples/demo/prometheus.yaml | 6 + examples/demo/server/Dockerfile | 19 + examples/demo/server/Makefile | 1 + examples/demo/server/go.mod | 34 + examples/demo/server/go.sum | 471 + examples/demo/server/main.go | 167 + examples/kubernetes/README.md | 59 + examples/kubernetes/docker-compose.yml | 8 + examples/kubernetes/otel-collector-config.yml | 80 + examples/kubernetes/otel-collector.yaml | 186 + .../logs/0.log | 7 + .../logs/0.log | 6 + .../logs/0.log | 7 + .../otel-collector/0.log | 7 + examples/tracegen/README.md | 11 + examples/tracegen/docker-compose.yml | 32 + examples/tracegen/otel-collector-config.yml | 21 + examples/tracing/Dockerfile | 19 + examples/tracing/README.md | 11 + examples/tracing/docker-compose.yml | 55 + examples/tracing/otel-collector-config.yml | 30 + .../alibabacloudlogserviceexporter/Makefile | 1 + .../alibabacloudlogserviceexporter/README.md | 76 + .../alibabacloudlogserviceexporter/config.go | 38 + .../config_test.go | 80 + .../example/config.yaml | 31 + .../alibabacloudlogserviceexporter/factory.go | 68 + .../alibabacloudlogserviceexporter/go.mod | 44 + .../alibabacloudlogserviceexporter/go.sum | 576 ++ .../logs_exporter.go | 59 + .../logs_exporter_test.go | 86 + .../logsdata_to_logservice.go | 199 + .../logsdata_to_logservice_test.go | 132 + .../metrics_exporter.go | 60 + .../metrics_exporter_test.go | 48 + .../metricsdata_to_logservice.go | 325 + .../metricsdata_to_logservice_test.go | 169 + .../sanitize.go | 52 + .../sanitize_test.go | 32 + .../testdata/config.yaml | 22 + .../testdata/logservice_log_data.json | 488 + .../testdata/logservice_metric_data.json | 236 + .../testdata/logservice_trace_data.json | 314 + .../trace_exporter.go | 60 + .../trace_exporter_test.go | 55 + .../tracedata_to_logservice.go | 216 + .../tracedata_to_logservice_test.go | 205 + .../uploader.go | 101 + exporter/awscloudwatchlogsexporter/Makefile | 1 + exporter/awscloudwatchlogsexporter/README.md | 46 + exporter/awscloudwatchlogsexporter/config.go | 86 + .../awscloudwatchlogsexporter/config_test.go | 103 + .../awscloudwatchlogsexporter/exporter.go | 256 + .../exporter_test.go | 267 + exporter/awscloudwatchlogsexporter/factory.go | 57 + .../awscloudwatchlogsexporter/factory_test.go | 37 + exporter/awscloudwatchlogsexporter/go.mod | 42 + exporter/awscloudwatchlogsexporter/go.sum | 299 + .../testdata/config.yaml | 22 + .../testdata/invalid_queue_setting.yaml | 16 + .../testdata/invalid_queue_size.yaml | 15 + .../missing_required_field_1_config.yaml | 12 + .../missing_required_field_2_config.yaml | 12 + exporter/awsemfexporter/Makefile | 1 + exporter/awsemfexporter/README.md | 82 + exporter/awsemfexporter/config.go | 129 + exporter/awsemfexporter/config_test.go | 123 + exporter/awsemfexporter/datapoint.go | 276 + exporter/awsemfexporter/datapoint_test.go | 796 ++ exporter/awsemfexporter/doc.go | 17 + exporter/awsemfexporter/emf_exporter.go | 257 + exporter/awsemfexporter/emf_exporter_test.go | 662 ++ exporter/awsemfexporter/factory.go | 64 + exporter/awsemfexporter/factory_test.go | 63 + exporter/awsemfexporter/go.mod | 62 + exporter/awsemfexporter/go.sum | 345 + exporter/awsemfexporter/grouped_metric.go | 209 + .../awsemfexporter/grouped_metric_test.go | 548 ++ exporter/awsemfexporter/metric_declaration.go | 216 + .../awsemfexporter/metric_declaration_test.go | 597 ++ exporter/awsemfexporter/metric_translator.go | 396 + .../awsemfexporter/metric_translator_test.go | 2445 +++++ exporter/awsemfexporter/testdata/config.yaml | 22 + exporter/awsemfexporter/testdata/mockcgroup | 1 + .../awsemfexporter/testdata/mockcgroupWithErr | 1 + .../testdata/testTranslateCWMetricToEMF.json | 1 + exporter/awsemfexporter/util.go | 180 + exporter/awsemfexporter/util_test.go | 371 + exporter/awskinesisexporter/Makefile | 1 + exporter/awskinesisexporter/README.md | 47 + exporter/awskinesisexporter/config.go | 59 + exporter/awskinesisexporter/config_test.go | 107 + exporter/awskinesisexporter/exporter.go | 142 + exporter/awskinesisexporter/factory.go | 110 + exporter/awskinesisexporter/go.mod | 55 + exporter/awskinesisexporter/go.sum | 410 + .../internal/batch/batch.go | 125 + .../internal/batch/batch_test.go | 72 + .../internal/batch/encode.go | 78 + .../internal/batch/encode_jaeger.go | 70 + .../internal/batch/encode_jaeger_test.go | 17 + .../internal/batch/encode_marshaler.go | 134 + .../internal/batch/encode_marshaler_test.go | 305 + .../internal/batch/encode_unsupported.go | 41 + .../internal/batch/encoder_test.go | 63 + .../internal/compress/compresser.go | 89 + .../internal/compress/compresser_test.go | 111 + .../internal/compress/noop_compression.go | 39 + .../awskinesisexporter/internal/key/key.go | 27 + .../internal/key/key_test.go | 31 + .../internal/producer/batcher.go | 87 + .../internal/producer/batcher_bench_test.go | 59 + .../internal/producer/batcher_options.go | 34 + .../internal/producer/batcher_test.go | 126 + .../internal/producer/interface.go | 33 + .../awskinesisexporter/testdata/config.yaml | 27 + .../awskinesisexporter/testdata/default.yaml | 15 + .../awsprometheusremotewriteexporter/Makefile | 1 + .../README.md | 81 + .../awsprometheusremotewriteexporter/auth.go | 162 + .../auth_test.go | 343 + .../config.go | 40 + .../config_test.go | 99 + .../factory.go | 75 + .../factory_test.go | 117 + .../awsprometheusremotewriteexporter/go.mod | 66 + .../awsprometheusremotewriteexporter/go.sum | 2057 +++++ .../testdata/config.yaml | 35 + exporter/awsxrayexporter/Makefile | 1 + exporter/awsxrayexporter/README.md | 66 + exporter/awsxrayexporter/awsxray.go | 115 + exporter/awsxrayexporter/awsxray_test.go | 263 + exporter/awsxrayexporter/config.go | 36 + exporter/awsxrayexporter/config_test.go | 65 + exporter/awsxrayexporter/doc.go | 17 + exporter/awsxrayexporter/factory.go | 53 + exporter/awsxrayexporter/factory_test.go | 79 + exporter/awsxrayexporter/go.mod | 44 + exporter/awsxrayexporter/go.sum | 304 + .../internal/translator/aws.go | 279 + .../internal/translator/aws_test.go | 423 + .../internal/translator/cause.go | 555 ++ .../internal/translator/cause_test.go | 1119 +++ .../internal/translator/http.go | 233 + .../internal/translator/http_test.go | 319 + .../internal/translator/segment.go | 474 + .../internal/translator/segment_test.go | 928 ++ .../internal/translator/service.go | 37 + .../internal/translator/service_test.go | 60 + .../internal/translator/sql.go | 97 + .../internal/translator/sql_test.go | 79 + .../internal/translator/writer_pool.go | 74 + .../internal/translator/writer_pool_test.go | 84 + exporter/awsxrayexporter/testdata/config.yaml | 21 + exporter/awsxrayexporter/xray_client.go | 78 + exporter/awsxrayexporter/xray_client_test.go | 47 + exporter/azuremonitorexporter/Makefile | 1 + exporter/azuremonitorexporter/README.md | 60 + exporter/azuremonitorexporter/channels.go | 21 + exporter/azuremonitorexporter/config.go | 30 + exporter/azuremonitorexporter/config_test.go | 58 + exporter/azuremonitorexporter/conventions.go | 298 + .../azuremonitorexporter/conventions_test.go | 209 + exporter/azuremonitorexporter/factory.go | 117 + exporter/azuremonitorexporter/factory_test.go | 64 + exporter/azuremonitorexporter/go.mod | 40 + exporter/azuremonitorexporter/go.sum | 316 + .../azuremonitorexporter/log_to_envelope.go | 97 + exporter/azuremonitorexporter/logexporter.go | 60 + .../azuremonitorexporter/logexporter_test.go | 119 + .../mock_transportChannel.go | 32 + .../azuremonitorexporter/testdata/config.yaml | 28 + exporter/azuremonitorexporter/time_utils.go | 46 + .../azuremonitorexporter/time_utils_test.go | 45 + .../azuremonitorexporter/trace_to_envelope.go | 686 ++ .../trace_to_envelope_test.go | 871 ++ .../azuremonitorexporter/traceexporter.go | 82 + .../traceexporter_test.go | 109 + .../azuremonitorexporter/traceiteration.go | 60 + .../traceiteration_test.go | 117 + exporter/carbonexporter/Makefile | 1 + exporter/carbonexporter/README.md | 35 + exporter/carbonexporter/config.go | 41 + exporter/carbonexporter/config_test.go | 57 + exporter/carbonexporter/doc.go | 16 + exporter/carbonexporter/exporter.go | 187 + exporter/carbonexporter/exporter_test.go | 309 + exporter/carbonexporter/factory.go | 57 + exporter/carbonexporter/factory_test.go | 61 + exporter/carbonexporter/go.mod | 50 + exporter/carbonexporter/go.sum | 332 + .../carbonexporter/metricdata_to_plaintext.go | 391 + .../metricdata_to_plaintext_test.go | 331 + exporter/carbonexporter/testdata/config.yaml | 24 + exporter/clickhouseexporter/Makefile | 8 + exporter/clickhouseexporter/README.md | 114 + exporter/clickhouseexporter/config.go | 68 + exporter/clickhouseexporter/config_test.go | 74 + .../clickhouseexporter/example/Dockerfile | 12 + .../example/datasource.yaml | 17 + .../example/docker-compose.yml | 69 + .../clickhouseexporter/example/grafana.ini | 7 + .../example/otel-collector-config.yml | 39 + exporter/clickhouseexporter/exporter.go | 221 + exporter/clickhouseexporter/exporter_test.go | 217 + exporter/clickhouseexporter/factory.go | 72 + exporter/clickhouseexporter/factory_test.go | 61 + exporter/clickhouseexporter/go.mod | 42 + exporter/clickhouseexporter/go.sum | 303 + .../clickhouseexporter/testdata/config.yaml | 27 + exporter/coralogixexporter/Makefile | 1 + exporter/coralogixexporter/README.md | 74 + exporter/coralogixexporter/client.go | 85 + exporter/coralogixexporter/config.go | 71 + exporter/coralogixexporter/config_test.go | 83 + .../example/config-example-1.yaml | 28 + .../coralogixexporter/example/config.yaml | 24 + exporter/coralogixexporter/exporter.go | 43 + exporter/coralogixexporter/factory.go | 60 + exporter/coralogixexporter/go.mod | 59 + exporter/coralogixexporter/go.sum | 378 + exporter/datadogexporter/Makefile | 1 + exporter/datadogexporter/README.md | 110 + exporter/datadogexporter/config/config.go | 484 + .../datadogexporter/config/config_test.go | 223 + .../datadogexporter/config/warn_envvars.go | 152 + .../config/warning_deprecated.go | 151 + .../config/warning_deprecated_test.go | 103 + exporter/datadogexporter/denylister.go | 57 + exporter/datadogexporter/denylister_test.go | 83 + exporter/datadogexporter/example/config.yaml | 237 + .../example_custom_sampler.go.example | 138 + .../example/example_k8s_manifest.yaml | 298 + exporter/datadogexporter/factory.go | 231 + exporter/datadogexporter/factory_test.go | 492 + exporter/datadogexporter/go.mod | 66 + exporter/datadogexporter/go.sum | 1249 +++ exporter/datadogexporter/hostmetadata.go | 52 + exporter/datadogexporter/hostmetadata_test.go | 92 + .../internal/metadata/config.go | 39 + .../internal/metadata/ec2/ec2.go | 83 + .../internal/metadata/ec2/ec2_test.go | 52 + .../datadogexporter/internal/metadata/host.go | 58 + .../internal/metadata/host_test.go | 56 + .../internal/metadata/metadata.go | 230 + .../internal/metadata/metadata_test.go | 229 + .../internal/metadata/system/host.go | 60 + .../internal/metadata/system/host_test.go | 57 + .../internal/metadata/system/host_unix.go | 44 + .../metadata/system/host_unix_test.go | 31 + .../internal/metadata/system/host_windows.go | 25 + .../internal/metadata/valid/valid.go | 62 + .../internal/metadata/valid/valid_test.go | 39 + .../internal/metrics/consumer.go | 129 + .../internal/metrics/consumer_test.go | 132 + .../datadogexporter/internal/metrics/utils.go | 122 + .../internal/metrics/utils_test.go | 133 + .../internal/model/attributes/attributes.go | 209 + .../model/attributes/attributes_test.go | 125 + .../internal/model/attributes/azure/azure.go | 68 + .../model/attributes/azure/azure_test.go | 79 + .../internal/model/attributes/ec2/ec2.go | 100 + .../internal/model/attributes/ec2/ec2_test.go | 78 + .../internal/model/attributes/gcp/gcp.go | 65 + .../internal/model/attributes/gcp/gcp_test.go | 61 + .../internal/model/attributes/hostname.go | 122 + .../model/attributes/hostname_test.go | 192 + .../internal/model/attributes/process.go | 55 + .../internal/model/attributes/process_test.go | 77 + .../internal/model/attributes/system.go | 36 + .../internal/model/attributes/system_test.go | 39 + .../instrumentationlibrary/metadata.go | 35 + .../instrumentationlibrary/metadata_test.go | 45 + .../model/internal/testutils/test_utils.go | 33 + .../internal/model/internal/utils/tags.go | 28 + .../model/internal/utils/tags_test.go | 36 + .../internal/model/translator/config.go | 151 + .../internal/model/translator/consumer.go | 76 + .../internal/model/translator/dimensions.go | 125 + .../model/translator/dimensions_test.go | 121 + .../model/translator/hostname_provider.go | 31 + .../model/translator/metrics_translator.go | 485 + .../translator/metrics_translator_test.go | 1433 +++ .../model/translator/sketches_test.go | 374 + .../internal/model/translator/ttlcache.go | 101 + .../model/translator/ttlcache_test.go | 114 + .../datadogexporter/internal/scrub/scrub.go | 98 + .../internal/scrub/scrub_test.go | 77 + .../internal/sketches/sketches.go | 79 + .../internal/sketches/sketches_test.go | 113 + .../internal/testutils/test_utils.go | 119 + .../datadogexporter/internal/utils/api.go | 43 + .../internal/utils/cache/cache.go | 31 + .../internal/utils/cache/cache_test.go | 25 + .../datadogexporter/internal/utils/http.go | 74 + .../internal/utils/http_test.go | 44 + .../datadogexporter/internal/utils/retrier.go | 97 + .../internal/utils/retrier_test.go | 49 + .../internal/utils/trace_helpers.go | 311 + .../internal/utils/trace_helpers_test.go | 142 + exporter/datadogexporter/metrics_exporter.go | 206 + .../datadogexporter/metrics_exporter_test.go | 75 + exporter/datadogexporter/model.go | 74 + exporter/datadogexporter/stats.go | 89 + exporter/datadogexporter/testdata/config.yaml | 79 + exporter/datadogexporter/trace_connection.go | 184 + exporter/datadogexporter/traces_exporter.go | 174 + .../datadogexporter/traces_exporter_test.go | 233 + exporter/datadogexporter/translate_traces.go | 694 ++ .../datadogexporter/translate_traces_test.go | 1610 ++++ exporter/dynatraceexporter/Makefile | 1 + exporter/dynatraceexporter/README.md | 274 + exporter/dynatraceexporter/config/config.go | 81 + .../dynatraceexporter/config/config_test.go | 54 + exporter/dynatraceexporter/factory.go | 84 + exporter/dynatraceexporter/factory_test.go | 149 + exporter/dynatraceexporter/go.mod | 50 + exporter/dynatraceexporter/go.sum | 327 + .../internal/serialization/gauge.go | 52 + .../internal/serialization/gauge_test.go | 56 + .../internal/serialization/histogram.go | 98 + .../internal/serialization/histogram_test.go | 59 + .../internal/serialization/serialization.go | 121 + .../internal/serialization/sum.go | 150 + .../internal/serialization/sum_test.go | 166 + .../dynatraceexporter/metrics_exporter.go | 298 + .../metrics_exporter_test.go | 515 ++ .../dynatraceexporter/testdata/config.yml | 36 + exporter/elasticexporter/Makefile | 1 + exporter/elasticexporter/README.md | 138 + exporter/elasticexporter/config.go | 51 + exporter/elasticexporter/config_test.go | 109 + exporter/elasticexporter/exporter.go | 198 + exporter/elasticexporter/exporter_test.go | 156 + exporter/elasticexporter/factory.go | 59 + exporter/elasticexporter/factory_test.go | 54 + exporter/elasticexporter/go.mod | 55 + exporter/elasticexporter/go.sum | 337 + .../internal/translator/elastic/exceptions.go | 204 + .../translator/elastic/exceptions_test.go | 311 + .../internal/translator/elastic/metadata.go | 111 + .../translator/elastic/metadata_test.go | 161 + .../internal/translator/elastic/metrics.go | 164 + .../translator/elastic/metrics_test.go | 168 + .../internal/translator/elastic/traces.go | 631 ++ .../translator/elastic/traces_test.go | 553 ++ .../internal/translator/elastic/utils.go | 63 + .../internal/translator/elastic/utils_test.go | 36 + exporter/elasticexporter/testdata/config.yaml | 20 + exporter/elasticsearchexporter/Makefile | 1 + exporter/elasticsearchexporter/README.md | 84 + exporter/elasticsearchexporter/config.go | 229 + exporter/elasticsearchexporter/config_test.go | 90 + exporter/elasticsearchexporter/exporter.go | 321 + .../elasticsearchexporter/exporter_test.go | 335 + exporter/elasticsearchexporter/factory.go | 81 + .../elasticsearchexporter/factory_test.go | 61 + exporter/elasticsearchexporter/go.mod | 40 + exporter/elasticsearchexporter/go.sum | 296 + .../internal/objmodel/objmodel.go | 521 ++ .../internal/objmodel/objmodel_test.go | 447 + exporter/elasticsearchexporter/model.go | 62 + .../testdata/config.yaml | 33 + exporter/elasticsearchexporter/utils_test.go | 221 + exporter/f5cloudexporter/Makefile | 1 + exporter/f5cloudexporter/README.md | 42 + exporter/f5cloudexporter/auth.go | 72 + exporter/f5cloudexporter/auth_test.go | 154 + exporter/f5cloudexporter/config.go | 73 + exporter/f5cloudexporter/config_test.go | 203 + exporter/f5cloudexporter/doc.go | 16 + exporter/f5cloudexporter/factory.go | 136 + exporter/f5cloudexporter/factory_test.go | 171 + exporter/f5cloudexporter/go.mod | 55 + exporter/f5cloudexporter/go.sum | 764 ++ exporter/f5cloudexporter/testdata/config.yaml | 36 + .../testdata/empty_credential_file.json | 1 + exporter/fileexporter/Makefile | 1 + exporter/fileexporter/README.md | 26 + exporter/fileexporter/config.go | 40 + exporter/fileexporter/config_test.go | 47 + exporter/fileexporter/doc.go | 16 + exporter/fileexporter/factory.go | 103 + exporter/fileexporter/factory_test.go | 61 + exporter/fileexporter/file_exporter.go | 93 + exporter/fileexporter/file_exporter_test.go | 137 + exporter/fileexporter/go.mod | 36 + exporter/fileexporter/go.sum | 284 + exporter/fileexporter/testdata/config.yaml | 26 + exporter/googlecloudexporter/Makefile | 1 + exporter/googlecloudexporter/README.md | 256 + exporter/googlecloudexporter/config.go | 41 + exporter/googlecloudexporter/config_test.go | 100 + exporter/googlecloudexporter/factory.go | 124 + exporter/googlecloudexporter/factory_test.go | 72 + exporter/googlecloudexporter/go.mod | 63 + exporter/googlecloudexporter/go.sum | 979 ++ exporter/googlecloudexporter/legacyconfig.go | 93 + .../googlecloudexporter/legacyconfig_test.go | 90 + exporter/googlecloudexporter/legacymetrics.go | 212 + .../googlecloudexporter/legacymetrics_test.go | 261 + .../legacyobservability.go | 105 + .../googlecloudexporter/legacyresource.go | 73 + .../legacyresource_test.go | 189 + .../googlecloudexporter/testdata/config.yaml | 38 + .../testdata/legacyconfig.yaml | 45 + exporter/googlecloudpubsubexporter/Makefile | 1 + exporter/googlecloudpubsubexporter/README.md | 104 + exporter/googlecloudpubsubexporter/config.go | 100 + .../googlecloudpubsubexporter/config_test.go | 114 + .../googlecloudpubsubexporter/exporter.go | 210 + .../exporter_test.go | 120 + exporter/googlecloudpubsubexporter/factory.go | 154 + .../googlecloudpubsubexporter/factory_test.go | 93 + exporter/googlecloudpubsubexporter/go.mod | 51 + exporter/googlecloudpubsubexporter/go.sum | 770 ++ .../testdata/config.yaml | 25 + .../googlecloudpubsubexporter/watermark.go | 185 + .../watermark_test.go | 122 + exporter/honeycombexporter/Makefile | 1 + exporter/honeycombexporter/README.md | 45 + exporter/honeycombexporter/config.go | 50 + exporter/honeycombexporter/config_test.go | 83 + exporter/honeycombexporter/factory.go | 69 + exporter/honeycombexporter/factory_test.go | 62 + exporter/honeycombexporter/go.mod | 44 + exporter/honeycombexporter/go.sum | 320 + exporter/honeycombexporter/honeycomb.go | 299 + exporter/honeycombexporter/honeycomb_test.go | 411 + exporter/honeycombexporter/ids.go | 60 + exporter/honeycombexporter/ids_test.go | 50 + .../honeycombexporter/testdata/config.yaml | 40 + exporter/honeycombexporter/translator.go | 66 + exporter/honeycombexporter/translator_test.go | 102 + exporter/humioexporter/Makefile | 1 + exporter/humioexporter/README.md | 109 + exporter/humioexporter/config.go | 153 + exporter/humioexporter/config_test.go | 423 + exporter/humioexporter/factory.go | 94 + exporter/humioexporter/factory_test.go | 162 + exporter/humioexporter/go.mod | 48 + exporter/humioexporter/go.sum | 339 + exporter/humioexporter/humio_client.go | 217 + exporter/humioexporter/humio_client_test.go | 385 + exporter/humioexporter/tag_strategy.go | 98 + exporter/humioexporter/tag_strategy_test.go | 90 + exporter/humioexporter/testdata/config.yaml | 46 + .../testdata/invalid-compression.yaml | 24 + .../humioexporter/testdata/invalid-tag.yaml | 22 + exporter/humioexporter/traces_exporter.go | 277 + .../humioexporter/traces_exporter_test.go | 523 ++ exporter/influxdbexporter/Makefile | 1 + exporter/influxdbexporter/README.md | 117 + exporter/influxdbexporter/config.go | 56 + exporter/influxdbexporter/config_test.go | 69 + exporter/influxdbexporter/exporter.go | 166 + exporter/influxdbexporter/factory.go | 99 + exporter/influxdbexporter/go.mod | 50 + exporter/influxdbexporter/go.sum | 360 + exporter/influxdbexporter/logger.go | 34 + .../influxdbexporter/testdata/config.yaml | 32 + exporter/influxdbexporter/writer.go | 181 + exporter/jaegerexporter/Makefile | 1 + exporter/jaegerexporter/README.md | 49 + exporter/jaegerexporter/config.go | 38 + exporter/jaegerexporter/config_test.go | 75 + exporter/jaegerexporter/doc.go | 16 + exporter/jaegerexporter/exporter.go | 191 + exporter/jaegerexporter/exporter_test.go | 385 + exporter/jaegerexporter/factory.go | 68 + exporter/jaegerexporter/factory_test.go | 64 + exporter/jaegerexporter/go.mod | 55 + exporter/jaegerexporter/go.sum | 376 + exporter/jaegerexporter/metrics.go | 39 + exporter/jaegerexporter/metrics_test.go | 32 + exporter/jaegerexporter/testdata/ca.crt | 20 + exporter/jaegerexporter/testdata/client.crt | 21 + exporter/jaegerexporter/testdata/client.key | 27 + exporter/jaegerexporter/testdata/config.yaml | 28 + exporter/jaegerexporter/testdata/server.crt | 21 + exporter/jaegerexporter/testdata/server.key | 27 + .../jaegerexporter/testdata/test_cert.pem | 29 + exporter/jaegerthrifthttpexporter/Makefile | 1 + exporter/jaegerthrifthttpexporter/README.md | 37 + exporter/jaegerthrifthttpexporter/config.go | 33 + .../jaegerthrifthttpexporter/config_test.go | 66 + exporter/jaegerthrifthttpexporter/doc.go | 17 + exporter/jaegerthrifthttpexporter/exporter.go | 165 + .../jaegerthrifthttpexporter/exporter_test.go | 48 + exporter/jaegerthrifthttpexporter/factory.go | 70 + .../jaegerthrifthttpexporter/factory_test.go | 118 + exporter/jaegerthrifthttpexporter/go.mod | 58 + exporter/jaegerthrifthttpexporter/go.sum | 353 + .../testdata/config.yaml | 22 + .../thrift_batch_no_binary_tags_01.json | 161 + .../thrift_batch_no_binary_tags_02.json | 65 + exporter/kafkaexporter/Makefile | 1 + exporter/kafkaexporter/README.md | 81 + exporter/kafkaexporter/authentication.go | 161 + exporter/kafkaexporter/authentication_test.go | 141 + exporter/kafkaexporter/config.go | 133 + exporter/kafkaexporter/config_test.go | 140 + exporter/kafkaexporter/doc.go | 16 + exporter/kafkaexporter/factory.go | 199 + exporter/kafkaexporter/factory_test.go | 136 + exporter/kafkaexporter/go.mod | 63 + exporter/kafkaexporter/go.sum | 378 + exporter/kafkaexporter/internal/awsmsk/doc.go | 20 + .../internal/awsmsk/iam_scram_client.go | 192 + .../internal/awsmsk/iam_scram_client_test.go | 127 + exporter/kafkaexporter/jaeger_marshaler.go | 105 + .../kafkaexporter/jaeger_marshaler_test.go | 82 + exporter/kafkaexporter/kafka_exporter.go | 221 + exporter/kafkaexporter/kafka_exporter_test.go | 315 + exporter/kafkaexporter/marshaler.go | 83 + exporter/kafkaexporter/marshaler_test.go | 148 + exporter/kafkaexporter/pdata_marshaler.go | 109 + exporter/kafkaexporter/scram_client.go | 54 + exporter/kafkaexporter/testdata/config.yaml | 40 + exporter/loadbalancingexporter/Makefile | 1 + exporter/loadbalancingexporter/README.md | 186 + exporter/loadbalancingexporter/config.go | 49 + exporter/loadbalancingexporter/config_test.go | 36 + .../consistent_hashing.go | 171 + .../consistent_hashing_test.go | 231 + .../loadbalancingexporter/example/Dockerfile | 19 + .../loadbalancingexporter/example/README.md | 22 + .../example/docker-compose.yaml | 76 + .../example/otel-agent-config.yaml | 35 + .../example/otel-collector-config.yaml | 24 + exporter/loadbalancingexporter/factory.go | 61 + .../loadbalancingexporter/factory_test.go | 62 + exporter/loadbalancingexporter/go.mod | 51 + exporter/loadbalancingexporter/go.sum | 765 ++ .../loadbalancingexporter/loadbalancer.go | 196 + .../loadbalancer_test.go | 352 + .../loadbalancingexporter/log_exporter.go | 150 + .../log_exporter_test.go | 515 ++ exporter/loadbalancingexporter/metrics.go | 80 + .../loadbalancingexporter/metrics_test.go | 35 + exporter/loadbalancingexporter/resolver.go | 36 + .../loadbalancingexporter/resolver_dns.go | 191 + .../resolver_dns_test.go | 316 + .../loadbalancingexporter/resolver_static.go | 83 + .../resolver_static_test.go | 76 + .../loadbalancingexporter/resolver_test.go | 68 + .../testdata/config.yaml | 50 + .../testdata/test-build-exporter-config.yaml | 29 + .../loadbalancingexporter/trace_exporter.go | 149 + .../trace_exporter_test.go | 539 ++ exporter/logzioexporter/Makefile | 1 + exporter/logzioexporter/README.md | 79 + exporter/logzioexporter/config.go | 40 + exporter/logzioexporter/config_test.go | 74 + exporter/logzioexporter/example/config.yaml | 35 + exporter/logzioexporter/exporter.go | 128 + exporter/logzioexporter/exporter_test.go | 205 + exporter/logzioexporter/factory.go | 54 + exporter/logzioexporter/factory_test.go | 49 + exporter/logzioexporter/go.mod | 76 + exporter/logzioexporter/go.sum | 1356 +++ exporter/logzioexporter/logger.go | 121 + exporter/logzioexporter/logger_test.go | 61 + exporter/logzioexporter/testdata/config.yaml | 22 + exporter/logzioexporter/testdata/configd.yaml | 17 + exporter/lokiexporter/Makefile | 1 + exporter/lokiexporter/README.md | 86 + exporter/lokiexporter/config.go | 120 + exporter/lokiexporter/config_test.go | 474 + exporter/lokiexporter/doc.go | 16 + exporter/lokiexporter/encode_json.go | 121 + exporter/lokiexporter/encode_json_test.go | 129 + exporter/lokiexporter/example/Dockerfile | 19 + exporter/lokiexporter/example/datasource.yaml | 7 + .../lokiexporter/example/docker-compose.yml | 64 + exporter/lokiexporter/example/grafana.ini | 7 + .../lokiexporter/example/loki-config.yaml | 37 + .../example/otel-collector-config.yml | 41 + exporter/lokiexporter/exporter.go | 336 + exporter/lokiexporter/exporter_test.go | 689 ++ exporter/lokiexporter/factory.go | 79 + exporter/lokiexporter/factory_test.go | 119 + exporter/lokiexporter/go.mod | 53 + exporter/lokiexporter/go.sum | 2087 +++++ .../third_party/loki/logproto/LICENSE | 202 + .../third_party/loki/logproto/README.md | 8 + .../third_party/loki/logproto/extensions.go | 23 + .../third_party/loki/logproto/logproto.pb.go | 8032 +++++++++++++++++ .../third_party/loki/logproto/logproto.proto | 166 + .../third_party/loki/logproto/timestamp.go | 106 + .../third_party/loki/logproto/types.go | 422 + .../third_party/loki/logproto/types_test.go | 111 + exporter/lokiexporter/testdata/config.yaml | 57 + exporter/newrelicexporter/Makefile | 1 + exporter/newrelicexporter/README.md | 69 + exporter/newrelicexporter/config.go | 91 + exporter/newrelicexporter/config_test.go | 83 + exporter/newrelicexporter/errors.go | 157 + exporter/newrelicexporter/errors_test.go | 195 + exporter/newrelicexporter/factory.go | 149 + exporter/newrelicexporter/factory_test.go | 137 + exporter/newrelicexporter/go.mod | 47 + exporter/newrelicexporter/go.sum | 334 + exporter/newrelicexporter/metrics.go | 257 + exporter/newrelicexporter/metrics_test.go | 429 + exporter/newrelicexporter/mock_test.go | 129 + exporter/newrelicexporter/newrelic.go | 383 + exporter/newrelicexporter/newrelic_test.go | 939 ++ .../newrelicexporter/testdata/config.yaml | 37 + exporter/newrelicexporter/transformer.go | 436 + exporter/newrelicexporter/transformer_test.go | 942 ++ exporter/observiqexporter/Makefile | 1 + exporter/observiqexporter/README.md | 34 + exporter/observiqexporter/client.go | 218 + exporter/observiqexporter/client_test.go | 345 + exporter/observiqexporter/config.go | 103 + exporter/observiqexporter/config_test.go | 155 + exporter/observiqexporter/converter.go | 244 + exporter/observiqexporter/converter_test.go | 351 + exporter/observiqexporter/example/config.yaml | 21 + exporter/observiqexporter/exporter.go | 54 + exporter/observiqexporter/factory.go | 68 + exporter/observiqexporter/factory_test.go | 49 + exporter/observiqexporter/go.mod | 31 + exporter/observiqexporter/go.sum | 284 + .../observiqexporter/testdata/config.yaml | 37 + exporter/observiqexporter/time.go | 23 + exporter/opencensusexporter/Makefile | 1 + exporter/opencensusexporter/README.md | 49 + exporter/opencensusexporter/config.go | 39 + exporter/opencensusexporter/config_test.go | 85 + exporter/opencensusexporter/doc.go | 16 + exporter/opencensusexporter/factory.go | 87 + exporter/opencensusexporter/factory_test.go | 199 + exporter/opencensusexporter/go.mod | 69 + exporter/opencensusexporter/go.sum | 408 + exporter/opencensusexporter/opencensus.go | 277 + .../opencensusexporter/opencensus_test.go | 227 + .../opencensusexporter/testdata/config.yaml | 39 + .../opencensusexporter/testdata/test_cert.pem | 29 + exporter/parquetexporter/Makefile | 1 + exporter/parquetexporter/README.md | 28 + exporter/parquetexporter/doc.go | 16 + exporter/parquetexporter/exporter.go | 48 + exporter/parquetexporter/factory.go | 94 + exporter/parquetexporter/go.mod | 27 + exporter/parquetexporter/go.sum | 268 + exporter/parquetexporter/testdata/config.yaml | 15 + exporter/prometheusexporter/Makefile | 1 + exporter/prometheusexporter/README.md | 37 + exporter/prometheusexporter/accumulator.go | 303 + .../prometheusexporter/accumulator_test.go | 436 + exporter/prometheusexporter/collector.go | 250 + exporter/prometheusexporter/collector_test.go | 560 ++ exporter/prometheusexporter/config.go | 64 + exporter/prometheusexporter/config_test.go | 57 + exporter/prometheusexporter/doc.go | 16 + .../prometheusexporter/end_to_end_test.go | 208 + exporter/prometheusexporter/factory.go | 86 + exporter/prometheusexporter/factory_test.go | 59 + exporter/prometheusexporter/go.mod | 148 + exporter/prometheusexporter/go.sum | 2067 +++++ exporter/prometheusexporter/prometheus.go | 96 + .../prometheusexporter/prometheus_test.go | 346 + exporter/prometheusexporter/sanitize.go | 56 + exporter/prometheusexporter/sanitize_test.go | 39 + .../prometheusexporter/testdata/config.yaml | 23 + .../prometheusremotewriteexporter/DESIGN.md | 288 + .../prometheusremotewriteexporter/Makefile | 1 + .../prometheusremotewriteexporter/README.md | 75 + .../prometheusremotewriteexporter/config.go | 98 + .../config_test.go | 118 + .../prometheusremotewriteexporter/context.go | 46 + exporter/prometheusremotewriteexporter/doc.go | 16 + .../prometheusremotewriteexporter/exporter.go | 290 + .../exporter_test.go | 942 ++ .../prometheusremotewriteexporter/factory.go | 111 + .../factory_test.go | 102 + exporter/prometheusremotewriteexporter/go.mod | 62 + exporter/prometheusremotewriteexporter/go.sum | 2054 +++++ .../prometheusremotewriteexporter/helper.go | 128 + .../helper_test.go | 193 + .../img/cortex.png | Bin 0 -> 73392 bytes .../img/timeseries.png | Bin 0 -> 9001 bytes .../testdata/config.yaml | 39 + .../testdata/disabled_queue.yaml | 21 + .../testdata/negative_num_consumers.yaml | 21 + .../testdata/negative_queue_size.yaml | 21 + .../testutil_test.go | 360 + exporter/prometheusremotewriteexporter/wal.go | 434 + .../prometheusremotewriteexporter/wal_test.go | 169 + exporter/sapmexporter/Makefile | 1 + exporter/sapmexporter/README.md | 59 + exporter/sapmexporter/config.go | 107 + exporter/sapmexporter/config_test.go | 101 + .../examples/signalfx-collector.yaml | 85 + .../sapmexporter/examples/signalfx-k8s.yaml | 187 + exporter/sapmexporter/exporter.go | 165 + exporter/sapmexporter/exporter_test.go | 229 + exporter/sapmexporter/factory.go | 60 + exporter/sapmexporter/factory_test.go | 49 + exporter/sapmexporter/go.mod | 54 + exporter/sapmexporter/go.sum | 1425 +++ exporter/sapmexporter/testdata/config.yaml | 44 + exporter/sentryexporter/Makefile | 1 + exporter/sentryexporter/README.md | 47 + exporter/sentryexporter/config.go | 26 + exporter/sentryexporter/config_test.go | 47 + .../sentryexporter/docs/transformation.md | 47 + exporter/sentryexporter/factory.go | 57 + exporter/sentryexporter/factory_test.go | 48 + exporter/sentryexporter/go.mod | 39 + exporter/sentryexporter/go.sum | 299 + exporter/sentryexporter/sentry_exporter.go | 453 + .../sentryexporter/sentry_exporter_test.go | 686 ++ exporter/sentryexporter/testdata/config.yaml | 17 + exporter/sentryexporter/transport.go | 69 + exporter/sentryexporter/utils.go | 27 + exporter/signalfxexporter/Makefile | 1 + exporter/signalfxexporter/README.md | 250 + exporter/signalfxexporter/config.go | 214 + exporter/signalfxexporter/config_test.go | 335 + exporter/signalfxexporter/doc.go | 16 + exporter/signalfxexporter/dpclient.go | 193 + exporter/signalfxexporter/eventclient.go | 125 + exporter/signalfxexporter/example/config.yaml | 25 + exporter/signalfxexporter/exporter.go | 204 + exporter/signalfxexporter/exporter_test.go | 1045 +++ exporter/signalfxexporter/factory.go | 216 + exporter/signalfxexporter/factory_test.go | 699 ++ exporter/signalfxexporter/go.mod | 89 + exporter/signalfxexporter/go.sum | 441 + .../internal/correlation/config.go | 70 + .../internal/correlation/config_test.go | 40 + .../internal/correlation/correlation.go | 158 + .../internal/correlation/correlation_test.go | 101 + .../internal/correlation/doc.go | 16 + .../internal/correlation/logshims.go | 64 + .../internal/correlation/logshims_test.go | 116 + .../internal/correlation/spanshims.go | 84 + .../internal/correlation/spanshims_test.go | 126 + .../internal/dimensions/dimclient.go | 344 + .../internal/dimensions/dimclient_test.go | 403 + .../internal/dimensions/dimensionupdate.go | 58 + .../internal/dimensions/metadata.go | 122 + .../internal/dimensions/metadata_test.go | 241 + .../internal/dimensions/requests.go | 157 + .../internal/hostmetadata/host.go | 205 + .../internal/hostmetadata/host_linux.go | 57 + .../internal/hostmetadata/host_linux_test.go | 148 + .../internal/hostmetadata/host_others.go | 28 + .../internal/hostmetadata/host_test.go | 320 + .../internal/hostmetadata/metadata.go | 128 + .../hostmetadata/metadata_linux_test.go | 24 + .../hostmetadata/metadata_others_test.go | 20 + .../internal/hostmetadata/metadata_test.go | 316 + .../testdata/centos-release/centos-release | 1 + .../testdata/lsb-release/lsb-release | 4 + .../testdata/os-release/os-release | 8 + .../testdata/redhat-release/redhat-release | 1 + .../testdata/system-release/system-release | 1 + .../internal/translation/constants.go | 458 + .../internal/translation/converter.go | 317 + .../internal/translation/converter_test.go | 900 ++ .../internal/translation/default_metrics.go | 152 + .../internal/translation/delta_translator.go | 106 + .../translation/dpfilters/datapoint.go | 66 + .../translation/dpfilters/dimensions.go | 74 + .../translation/dpfilters/dimensions_test.go | 144 + .../translation/dpfilters/filterset.go | 77 + .../translation/dpfilters/filterset_test.go | 418 + .../translation/dpfilters/matching.go | 74 + .../translation/dpfilters/metricfilter.go | 52 + .../internal/translation/dpfilters/string.go | 103 + .../translation/dpfilters/string_test.go | 167 + .../translation/logdata_to_signalfxv2.go | 147 + .../translation/logdata_to_signalfxv2_test.go | 184 + .../internal/translation/translator.go | 886 ++ .../internal/translation/translator_test.go | 3053 +++++++ .../signalfxexporter/testdata/config.yaml | 82 + .../testdata/json/non_default_metrics.json | 29 + .../non_default_metrics_otel_convention.json | 224 + .../testdata/json/system.cpu.time.1.json | 994 ++ .../testdata/json/system.cpu.time.2.json | 994 ++ .../json/system.filesystem.usage.json | 374 + exporter/skywalkingexporter/Makefile | 1 + exporter/skywalkingexporter/README.md | 54 + exporter/skywalkingexporter/config.go | 49 + exporter/skywalkingexporter/config_test.go | 109 + exporter/skywalkingexporter/doc.go | 16 + exporter/skywalkingexporter/factory.go | 89 + exporter/skywalkingexporter/factory_test.go | 175 + exporter/skywalkingexporter/go.mod | 51 + exporter/skywalkingexporter/go.sum | 376 + .../logrecord_to_logdata.go | 154 + .../logrecord_to_logdata_test.go | 151 + .../metricrecord_to_metricdata.go | 242 + .../metricrecord_to_metricdata_test.go | 214 + exporter/skywalkingexporter/skywalking.go | 215 + .../skywalking_benchmark_test.go | 214 + .../skywalkingexporter/skywalking_test.go | 251 + .../skywalkingexporter/testdata/config.yaml | 42 + .../skywalkingexporter/testdata/test_cert.pem | 17 + .../skywalkingexporter/testdata/test_key.pem | 28 + exporter/splunkhecexporter/Makefile | 1 + exporter/splunkhecexporter/README.md | 107 + exporter/splunkhecexporter/client.go | 830 ++ exporter/splunkhecexporter/client_test.go | 1309 +++ exporter/splunkhecexporter/config.go | 168 + exporter/splunkhecexporter/config_test.go | 217 + exporter/splunkhecexporter/doc.go | 16 + exporter/splunkhecexporter/example/Dockerfile | 19 + exporter/splunkhecexporter/example/README.md | 13 + .../example/docker-compose.yml | 31 + .../example/otel-collector-config.yml | 38 + exporter/splunkhecexporter/example/splunk.yml | 11 + exporter/splunkhecexporter/exporter.go | 136 + exporter/splunkhecexporter/exporter_test.go | 345 + exporter/splunkhecexporter/factory.go | 192 + exporter/splunkhecexporter/factory_test.go | 167 + exporter/splunkhecexporter/go.mod | 56 + exporter/splunkhecexporter/go.sum | 341 + .../splunkhecexporter/logdata_to_splunk.go | 152 + .../logdata_to_splunk_test.go | 481 + .../splunkhecexporter/metricdata_to_splunk.go | 269 + .../metricdata_to_splunk_test.go | 667 ++ .../splunkhecexporter/testdata/config.yaml | 50 + .../splunkhecexporter/tracedata_to_splunk.go | 156 + .../tracedata_to_splunk_test.go | 171 + exporter/stackdriverexporter/Makefile | 1 + exporter/stackdriverexporter/README.md | 33 + exporter/stackdriverexporter/factory.go | 76 + exporter/stackdriverexporter/factory_test.go | 53 + exporter/stackdriverexporter/go.mod | 66 + exporter/stackdriverexporter/go.sum | 987 ++ .../stackdriverexporter/testdata/config.yaml | 45 + exporter/sumologicexporter/Makefile | 1 + exporter/sumologicexporter/README.md | 63 + .../sumologicexporter/carbon_formatter.go | 110 + .../carbon_formatter_test.go | 99 + exporter/sumologicexporter/compress.go | 89 + exporter/sumologicexporter/compress_test.go | 154 + exporter/sumologicexporter/config.go | 172 + exporter/sumologicexporter/config_test.go | 128 + exporter/sumologicexporter/exporter.go | 331 + exporter/sumologicexporter/exporter_test.go | 446 + exporter/sumologicexporter/factory.go | 88 + exporter/sumologicexporter/factory_test.go | 59 + exporter/sumologicexporter/fields.go | 60 + exporter/sumologicexporter/fields_test.go | 43 + exporter/sumologicexporter/filter.go | 76 + exporter/sumologicexporter/filter_test.go | 66 + exporter/sumologicexporter/go.mod | 46 + exporter/sumologicexporter/go.sum | 334 + .../sumologicexporter/graphite_formatter.go | 125 + .../graphite_formatter_test.go | 158 + .../sumologicexporter/prometheus_formatter.go | 349 + .../prometheus_formatter_test.go | 186 + exporter/sumologicexporter/sender.go | 399 + exporter/sumologicexporter/sender_test.go | 863 ++ exporter/sumologicexporter/source_format.go | 91 + .../sumologicexporter/source_format_test.go | 112 + exporter/sumologicexporter/test_data.go | 277 + exporter/tanzuobservabilityexporter/Makefile | 1 + exporter/tanzuobservabilityexporter/README.md | 116 + exporter/tanzuobservabilityexporter/config.go | 73 + .../tanzuobservabilityexporter/config_test.go | 105 + .../tanzuobservabilityexporter/exporter.go | 181 + .../exporter_test.go | 345 + .../tanzuobservabilityexporter/factory.go | 112 + .../factory_test.go | 167 + exporter/tanzuobservabilityexporter/go.mod | 52 + exporter/tanzuobservabilityexporter/go.sum | 339 + .../tanzuobservabilityexporter/metrics.go | 849 ++ .../metrics_exporter.go | 90 + .../metrics_exporter_test.go | 116 + .../metrics_test.go | 1497 +++ .../testdata/config.yaml | 30 + .../tanzuobservabilityexporter/transformer.go | 286 + .../transformer_test.go | 405 + .../tencentcloudlogserviceexporter/Makefile | 1 + .../tencentcloudlogserviceexporter/README.md | 47 + .../tencentcloudlogserviceexporter/config.go | 48 + .../config_test.go | 68 + .../example/config.yaml | 25 + .../tencentcloudlogserviceexporter/factory.go | 50 + .../tencentcloudlogserviceexporter/go.mod | 43 + .../tencentcloudlogserviceexporter/go.sum | 304 + .../logs_exporter.go | 55 + .../logs_exporter_test.go | 72 + .../logsdata_to_logservice.go | 196 + .../logsdata_to_logservice_test.go | 154 + .../proto/cls.pb.go | 463 + .../proto/cls.proto | 32 + .../sanitize.go | 52 + .../sanitize_test.go | 32 + .../testdata/config.yaml | 26 + .../testdata/logservice_log_data.json | 488 + .../uploader.go | 90 + exporter/zipkinexporter/Makefile | 1 + exporter/zipkinexporter/README.md | 53 + exporter/zipkinexporter/config.go | 43 + exporter/zipkinexporter/config_test.go | 76 + exporter/zipkinexporter/doc.go | 16 + exporter/zipkinexporter/factory.go | 87 + exporter/zipkinexporter/factory_test.go | 47 + exporter/zipkinexporter/go.mod | 65 + exporter/zipkinexporter/go.sum | 417 + exporter/zipkinexporter/testdata/config.yaml | 29 + exporter/zipkinexporter/testutils_test.go | 53 + exporter/zipkinexporter/zipkin.go | 103 + exporter/zipkinexporter/zipkin_test.go | 354 + extension/asapauthextension/Makefile | 1 + extension/asapauthextension/README.md | 36 + extension/asapauthextension/config.go | 66 + extension/asapauthextension/config_test.go | 94 + extension/asapauthextension/extension.go | 100 + extension/asapauthextension/extension_test.go | 114 + extension/asapauthextension/factory.go | 46 + extension/asapauthextension/factory_test.go | 98 + extension/asapauthextension/go.mod | 42 + extension/asapauthextension/go.sum | 328 + .../asapauthextension/testdata/config.yaml | 25 + .../testdata/config_bad.yaml | 57 + extension/awsproxy/Makefile | 1 + extension/awsproxy/README.md | 51 + extension/awsproxy/config.go | 29 + extension/awsproxy/config_test.go | 68 + extension/awsproxy/extension.go | 64 + extension/awsproxy/extension_test.go | 39 + extension/awsproxy/factory.go | 60 + extension/awsproxy/factory_test.go | 120 + extension/awsproxy/go.mod | 36 + extension/awsproxy/go.sum | 250 + extension/awsproxy/testdata/config.yaml | 27 + extension/basicauthextension/Makefile | 1 + extension/basicauthextension/README.md | 47 + extension/basicauthextension/config.go | 31 + extension/basicauthextension/extension.go | 179 + .../basicauthextension/extension_test.go | 195 + extension/basicauthextension/factory.go | 44 + extension/basicauthextension/factory_test.go | 61 + extension/basicauthextension/go.mod | 38 + extension/basicauthextension/go.sum | 309 + extension/bearertokenauthextension/Makefile | 1 + extension/bearertokenauthextension/README.md | 51 + .../bearertokenauth.go | 103 + .../bearertokenauth_test.go | 106 + extension/bearertokenauthextension/config.go | 40 + .../bearertokenauthextension/config_test.go | 65 + extension/bearertokenauthextension/factory.go | 45 + .../bearertokenauthextension/factory_test.go | 40 + extension/bearertokenauthextension/go.mod | 35 + extension/bearertokenauthextension/go.sum | 316 + .../testdata/config.yaml | 21 + .../testdata/config_missing_token.yaml | 18 + extension/fluentbitextension/Makefile | 1 + extension/fluentbitextension/README.md | 93 + extension/fluentbitextension/config.go | 50 + extension/fluentbitextension/config_test.go | 52 + extension/fluentbitextension/factory.go | 57 + extension/fluentbitextension/factory_test.go | 45 + extension/fluentbitextension/go.mod | 42 + extension/fluentbitextension/go.sum | 266 + .../fluentbitextension/images/chained.png | Bin 0 -> 18090 bytes .../fluentbitextension/images/sidebyside.png | Bin 0 -> 13693 bytes extension/fluentbitextension/process.go | 223 + extension/fluentbitextension/process_linux.go | 31 + .../fluentbitextension/process_linux_test.go | 177 + .../fluentbitextension/process_others.go | 24 + .../fluentbitextension/testdata/config.yaml | 20 + extension/healthcheckextension/Makefile | 2 + extension/healthcheckextension/README.md | 39 + extension/healthcheckextension/config.go | 81 + extension/healthcheckextension/config_test.go | 88 + extension/healthcheckextension/doc.go | 18 + extension/healthcheckextension/exporter.go | 69 + .../healthcheckextension/exporter_test.go | 61 + extension/healthcheckextension/factory.go | 66 + .../healthcheckextension/factory_test.go | 55 + extension/healthcheckextension/go.mod | 33 + extension/healthcheckextension/go.sum | 281 + .../healthcheckextension.go | 162 + .../healthcheckextension_test.go | 339 + .../healthcheckextension/testdata/config.yaml | 31 + .../testdata/config_bad.yaml | 37 + extension/httpforwarder/Makefile | 1 + extension/httpforwarder/README.md | 35 + extension/httpforwarder/config.go | 31 + extension/httpforwarder/extension.go | 137 + extension/httpforwarder/extension_test.go | 280 + extension/httpforwarder/factory.go | 60 + extension/httpforwarder/factory_test.go | 84 + extension/httpforwarder/go.mod | 46 + extension/httpforwarder/go.sum | 321 + extension/jaegerremotesampling/Makefile | 1 + extension/jaegerremotesampling/README.md | 81 + extension/jaegerremotesampling/config.go | 71 + extension/jaegerremotesampling/config_test.go | 110 + extension/jaegerremotesampling/extension.go | 118 + .../jaegerremotesampling/extension_test.go | 95 + extension/jaegerremotesampling/factory.go | 57 + .../jaegerremotesampling/factory_test.go | 57 + extension/jaegerremotesampling/go.mod | 63 + extension/jaegerremotesampling/go.sum | 804 ++ .../jaegerremotesampling/internal/http.go | 130 + .../internal/http_test.go | 152 + .../jaegerremotesampling/testdata/config.yaml | 25 + .../testdata/strategy.json | 1 + extension/oauth2clientauthextension/Makefile | 1 + extension/oauth2clientauthextension/README.md | 68 + extension/oauth2clientauthextension/config.go | 78 + .../oauth2clientauthextension/config_test.go | 120 + extension/oauth2clientauthextension/doc.go | 19 + .../oauth2clientauthextension/extension.go | 117 + .../extension_test.go | 297 + .../oauth2clientauthextension/factory.go | 54 + .../oauth2clientauthextension/factory_test.go | 92 + extension/oauth2clientauthextension/go.mod | 48 + extension/oauth2clientauthextension/go.sum | 749 ++ .../testdata/README.md | 4 + .../testdata/config.yaml | 40 + .../testdata/config_bad.yaml | 33 + .../testdata/test-cert.pem | 25 + .../testdata/test-key.pem | 28 + .../testdata/testCA.pem | 13 + extension/observer/Makefile | 1 + extension/observer/README.md | 10 + extension/observer/dockerobserver/Makefile | 1 + extension/observer/dockerobserver/README.md | 107 + extension/observer/dockerobserver/config.go | 78 + .../observer/dockerobserver/config_test.go | 76 + .../observer/dockerobserver/extension.go | 396 + .../observer/dockerobserver/extension_test.go | 299 + extension/observer/dockerobserver/factory.go | 55 + .../observer/dockerobserver/factory_test.go | 42 + extension/observer/dockerobserver/go.mod | 64 + extension/observer/dockerobserver/go.sum | 1112 +++ .../dockerobserver/integration_test.go | 237 + .../dockerobserver/testdata/config.yaml | 34 + .../dockerobserver/testdata/container.json | 238 + extension/observer/ecsobserver/Makefile | 1 + extension/observer/ecsobserver/README.md | 456 + extension/observer/ecsobserver/config.go | 129 + extension/observer/ecsobserver/config_test.go | 116 + .../observer/ecsobserver/docker_label.go | 136 + .../observer/ecsobserver/docker_label_test.go | 216 + extension/observer/ecsobserver/error.go | 118 + extension/observer/ecsobserver/error_test.go | 28 + extension/observer/ecsobserver/exporter.go | 162 + .../observer/ecsobserver/exporter_test.go | 258 + extension/observer/ecsobserver/extension.go | 55 + .../observer/ecsobserver/extension_test.go | 112 + extension/observer/ecsobserver/factory.go | 62 + extension/observer/ecsobserver/fetcher.go | 435 + .../observer/ecsobserver/fetcher_test.go | 261 + extension/observer/ecsobserver/filter.go | 88 + extension/observer/ecsobserver/filter_test.go | 204 + extension/observer/ecsobserver/go.mod | 34 + extension/observer/ecsobserver/go.sum | 259 + .../ecsobserver/internal/ecsmock/doc.go | 17 + .../ecsobserver/internal/ecsmock/service.go | 491 + .../internal/ecsmock/service_test.go | 296 + .../ecsobserver/internal/errctx/doc.go | 19 + .../ecsobserver/internal/errctx/value.go | 162 + .../ecsobserver/internal/errctx/value_test.go | 98 + extension/observer/ecsobserver/matcher.go | 217 + .../observer/ecsobserver/matcher_test.go | 138 + extension/observer/ecsobserver/sd.go | 115 + extension/observer/ecsobserver/sd_test.go | 271 + extension/observer/ecsobserver/service.go | 130 + .../observer/ecsobserver/service_test.go | 170 + extension/observer/ecsobserver/target.go | 197 + extension/observer/ecsobserver/target_test.go | 35 + extension/observer/ecsobserver/task.go | 215 + .../observer/ecsobserver/task_definition.go | 101 + .../ecsobserver/task_definition_test.go | 152 + extension/observer/ecsobserver/task_test.go | 326 + .../observer/ecsobserver/testdata/.gitignore | 2 + .../observer/ecsobserver/testdata/config.yaml | 40 + .../ecsobserver/testdata/config_invalid.yaml | 24 + .../testdata/ut_targets.expected.yaml | 362 + extension/observer/ecstaskobserver/Makefile | 1 + extension/observer/ecstaskobserver/README.md | 103 + extension/observer/ecstaskobserver/config.go | 60 + .../observer/ecstaskobserver/config_test.go | 73 + .../observer/ecstaskobserver/extension.go | 118 + .../ecstaskobserver/extension_test.go | 104 + extension/observer/ecstaskobserver/factory.go | 98 + .../observer/ecstaskobserver/factory_test.go | 36 + extension/observer/ecstaskobserver/go.mod | 50 + extension/observer/ecstaskobserver/go.sum | 317 + .../ecstaskobserver/testdata/config.yaml | 31 + .../testdata/invalid_endpoint_config.yaml | 23 + extension/observer/endpoints.go | 254 + extension/observer/endpoints_test.go | 220 + extension/observer/endpointswatcher.go | 118 + extension/observer/endpointswatcher_test.go | 144 + extension/observer/go.mod | 11 + extension/observer/go.sum | 11 + extension/observer/hostobserver/Makefile | 1 + extension/observer/hostobserver/README.md | 30 + extension/observer/hostobserver/config.go | 30 + .../observer/hostobserver/config_test.go | 52 + extension/observer/hostobserver/extension.go | 253 + .../observer/hostobserver/extension_test.go | 557 ++ extension/observer/hostobserver/factory.go | 54 + .../observer/hostobserver/factory_test.go | 42 + extension/observer/hostobserver/go.mod | 44 + extension/observer/hostobserver/go.sum | 266 + .../hostobserver/testdata/config.yaml | 20 + extension/observer/k8sobserver/Makefile | 1 + extension/observer/k8sobserver/README.md | 59 + extension/observer/k8sobserver/config.go | 59 + extension/observer/k8sobserver/config_test.go | 89 + extension/observer/k8sobserver/doc.go | 16 + extension/observer/k8sobserver/extension.go | 115 + .../observer/k8sobserver/extension_test.go | 185 + extension/observer/k8sobserver/factory.go | 56 + .../observer/k8sobserver/factory_test.go | 45 + extension/observer/k8sobserver/go.mod | 67 + extension/observer/k8sobserver/go.sum | 805 ++ extension/observer/k8sobserver/handler.go | 184 + .../observer/k8sobserver/handler_test.go | 251 + .../observer/k8sobserver/k8s_fixtures_test.go | 166 + extension/observer/k8sobserver/mocks_test.go | 60 + .../observer/k8sobserver/node_endpoint.go | 74 + .../k8sobserver/node_endpoint_test.go | 45 + .../observer/k8sobserver/pod_endpoint.go | 96 + .../observer/k8sobserver/pod_endpoint_test.go | 51 + .../observer/k8sobserver/testdata/config.yaml | 28 + .../k8sobserver/testdata/invalid_auth.yaml | 20 + .../testdata/invalid_no_observing.yaml | 21 + extension/observer/observer.go | 56 + extension/oidcauthextension/Makefile | 1 + extension/oidcauthextension/README.md | 35 + extension/oidcauthextension/authdata.go | 42 + extension/oidcauthextension/config.go | 46 + extension/oidcauthextension/extension.go | 237 + extension/oidcauthextension/extension_test.go | 458 + extension/oidcauthextension/factory.go | 48 + extension/oidcauthextension/factory_test.go | 55 + extension/oidcauthextension/go.mod | 42 + extension/oidcauthextension/go.sum | 563 ++ .../oidcauthextension/oidc_server_test.go | 143 + extension/pprofextension/Makefile | 1 + extension/pprofextension/README.md | 32 + extension/pprofextension/config.go | 51 + extension/pprofextension/config_test.go | 55 + extension/pprofextension/doc.go | 17 + extension/pprofextension/factory.go | 57 + extension/pprofextension/factory_test.go | 52 + extension/pprofextension/go.mod | 34 + extension/pprofextension/go.sum | 247 + extension/pprofextension/pprofextension.go | 123 + .../pprofextension/pprofextension_test.go | 145 + extension/pprofextension/testdata/config.yaml | 22 + extension/sigv4authextension/Makefile | 1 + extension/sigv4authextension/README.md | 47 + extension/sigv4authextension/config.go | 57 + extension/sigv4authextension/config_test.go | 84 + extension/sigv4authextension/design.md | 573 ++ extension/sigv4authextension/doc.go | 18 + extension/sigv4authextension/extension.go | 104 + .../sigv4authextension/extension_test.go | 158 + extension/sigv4authextension/factory.go | 48 + extension/sigv4authextension/factory_test.go | 57 + extension/sigv4authextension/go.mod | 40 + extension/sigv4authextension/go.sum | 314 + .../sigv4authextension/images/E2EDiagram.png | Bin 0 -> 25027 bytes .../images/Sigv4ComponentDiagram.png | Bin 0 -> 39056 bytes .../sigv4authextension/signingroundtripper.go | 135 + .../signingroundtripper_test.go | 177 + .../sigv4authextension/testdata/config.yaml | 23 + .../testdata/config_bad.yaml | 20 + extension/storage/Makefile | 1 + extension/storage/dbstorage/README.md | 38 + extension/storage/dbstorage/client.go | 130 + extension/storage/dbstorage/config.go | 39 + extension/storage/dbstorage/config_test.go | 55 + extension/storage/dbstorage/extension.go | 91 + extension/storage/dbstorage/extension_test.go | 129 + extension/storage/dbstorage/factory.go | 47 + extension/storage/filestorage/README.md | 49 + extension/storage/filestorage/client.go | 156 + extension/storage/filestorage/client_test.go | 378 + extension/storage/filestorage/config.go | 74 + extension/storage/filestorage/config_test.go | 93 + .../storage/filestorage/default_others.go | 22 + .../storage/filestorage/default_windows.go | 27 + extension/storage/filestorage/extension.go | 97 + .../storage/filestorage/extension_test.go | 379 + extension/storage/filestorage/factory.go | 57 + extension/storage/filestorage/factory_test.go | 87 + .../storage/filestorage/testdata/config.yaml | 29 + extension/storage/go.mod | 50 + extension/storage/go.sum | 390 + extension/storage/storagetest/Makefile | 1 + extension/storage/storagetest/doc.go | 17 + extension/storage/storagetest/storage.go | 63 + extension/storage/storagetest/storage_test.go | 38 + go.mod | 811 ++ go.sum | 3206 +++++++ internal/aws/awsutil/Makefile | 1 + internal/aws/awsutil/awsconfig.go | 55 + internal/aws/awsutil/awsconfig_test.go | 38 + internal/aws/awsutil/conn.go | 301 + internal/aws/awsutil/conn_test.go | 197 + internal/aws/awsutil/doc.go | 17 + internal/aws/awsutil/go.mod | 23 + internal/aws/awsutil/go.sum | 81 + internal/aws/containerinsight/Makefile | 1 + internal/aws/containerinsight/const.go | 212 + internal/aws/containerinsight/ecsconst.go | 20 + internal/aws/containerinsight/go.mod | 21 + internal/aws/containerinsight/go.sum | 86 + internal/aws/containerinsight/k8sconst.go | 48 + internal/aws/containerinsight/utils.go | 248 + internal/aws/containerinsight/utils_test.go | 765 ++ internal/aws/cwlogs/Makefile | 1 + internal/aws/cwlogs/cwlog_client.go | 194 + internal/aws/cwlogs/cwlog_client_test.go | 498 + internal/aws/cwlogs/go.mod | 33 + internal/aws/cwlogs/go.sum | 242 + .../handler/request_structuredlog_handler.go | 25 + .../request_structuredlog_handler_test.go | 37 + internal/aws/cwlogs/pusher.go | 344 + internal/aws/cwlogs/pusher_test.go | 256 + internal/aws/ecsutil/Makefile | 1 + internal/aws/ecsutil/client.go | 125 + internal/aws/ecsutil/client_test.go | 207 + internal/aws/ecsutil/doc.go | 17 + .../testdata/container_metadata.json | 44 + .../ecsutiltest/testdata/task_metadata.json | 109 + internal/aws/ecsutil/ecsutiltest/testutil.go | 39 + internal/aws/ecsutil/endpoints/metadata.go | 80 + .../aws/ecsutil/endpoints/metadata_test.go | 34 + internal/aws/ecsutil/go.mod | 45 + internal/aws/ecsutil/go.sum | 321 + internal/aws/ecsutil/metadata.go | 69 + internal/aws/ecsutil/metadata_provider.go | 102 + .../aws/ecsutil/metadata_provider_test.go | 81 + internal/aws/ecsutil/rest_client.go | 57 + internal/aws/ecsutil/rest_client_test.go | 76 + internal/aws/k8s/Makefile | 1 + internal/aws/k8s/go.mod | 50 + internal/aws/k8s/go.sum | 646 ++ internal/aws/k8s/k8sclient/clientset.go | 350 + internal/aws/k8s/k8sclient/clientset_test.go | 48 + internal/aws/k8s/k8sclient/endpoint.go | 201 + internal/aws/k8s/k8sclient/endpoint_info.go | 21 + internal/aws/k8s/k8sclient/endpoint_test.go | 439 + internal/aws/k8s/k8sclient/helpers_test.go | 88 + internal/aws/k8s/k8sclient/job.go | 175 + internal/aws/k8s/k8sclient/job_info.go | 25 + internal/aws/k8s/k8sclient/job_test.go | 81 + internal/aws/k8s/k8sclient/node.go | 177 + internal/aws/k8s/k8sclient/node_info.go | 28 + internal/aws/k8s/k8sclient/node_test.go | 328 + internal/aws/k8s/k8sclient/obj_store.go | 166 + internal/aws/k8s/k8sclient/obj_store_test.go | 224 + internal/aws/k8s/k8sclient/pod.go | 135 + internal/aws/k8s/k8sclient/pod_info.go | 24 + internal/aws/k8s/k8sclient/pod_test.go | 199 + internal/aws/k8s/k8sclient/replicaset.go | 177 + internal/aws/k8s/k8sclient/replicaset_info.go | 25 + internal/aws/k8s/k8sclient/replicaset_test.go | 91 + internal/aws/k8s/k8sutil/util.go | 35 + internal/aws/k8s/k8sutil/util_test.go | 35 + internal/aws/metrics/Makefile | 1 + internal/aws/metrics/go.mod | 16 + internal/aws/metrics/go.sum | 30 + internal/aws/metrics/metric_calculator.go | 151 + .../aws/metrics/metric_calculator_test.go | 232 + internal/aws/proxy/Makefile | 1 + internal/aws/proxy/cfg.go | 68 + internal/aws/proxy/conn.go | 291 + internal/aws/proxy/conn_test.go | 532 ++ internal/aws/proxy/go.mod | 23 + internal/aws/proxy/go.sum | 83 + internal/aws/proxy/server.go | 170 + internal/aws/proxy/server_test.go | 292 + .../aws/proxy/testdata/ecsmetadatafile.txt | 32 + .../testdata/ecsmetadatafileInvalidArn.txt | 32 + .../proxy/testdata/ecsmetadatafileinvalid.txt | 1 + internal/aws/xray/Makefile | 1 + internal/aws/xray/awsxray.go | 62 + internal/aws/xray/go.mod | 15 + internal/aws/xray/go.sum | 31 + internal/aws/xray/testdata/README.md | 31 + .../aws/xray/testdata/awsMissingAwsField.txt | 24 + .../aws/xray/testdata/awsValidAwsFields.txt | 47 + internal/aws/xray/testdata/ddbSample.txt | 483 + .../aws/xray/testdata/indepSubsegment.txt | 21 + ...indepSubsegmentWithContentLengthString.txt | 21 + .../indepSubsegmentWithInvalidSqlUrl.txt | 19 + .../xray/testdata/indepSubsegmentWithSql.txt | 19 + .../aws/xray/testdata/invalidNamespace.txt | 483 + .../xray/testdata/minCauseIsExceptionId.txt | 10 + .../aws/xray/testdata/minCauseIsInvalid.txt | 10 + internal/aws/xray/testdata/minInProgress.txt | 8 + internal/aws/xray/testdata/minOtherFields.txt | 14 + internal/aws/xray/testdata/sampleapp/Makefile | 1 + internal/aws/xray/testdata/sampleapp/go.mod | 29 + internal/aws/xray/testdata/sampleapp/go.sum | 250 + .../aws/xray/testdata/sampleapp/sample.go | 82 + .../aws/xray/testdata/sampleserver/Makefile | 1 + .../aws/xray/testdata/sampleserver/go.mod | 29 + .../aws/xray/testdata/sampleserver/go.sum | 250 + .../aws/xray/testdata/sampleserver/sample.go | 42 + .../xray/testdata/segmentValidationFailed.txt | 29 + internal/aws/xray/testdata/serverSample.txt | 35 + internal/aws/xray/tracesegment.go | 282 + internal/aws/xray/tracesegment_test.go | 707 ++ internal/aws/xray/util.go | 31 + internal/aws/xray/util_test.go | 50 + internal/buildscripts/gen-certs.sh | 125 + .../buildscripts/packaging/fpm/Dockerfile | 16 + internal/buildscripts/packaging/fpm/common.sh | 60 + .../packaging/fpm/deb/Dockerfile.test | 22 + .../buildscripts/packaging/fpm/deb/README.md | 14 + .../buildscripts/packaging/fpm/deb/build.sh | 37 + .../packaging/fpm/otel-contrib-collector.conf | 5 + .../fpm/otel-contrib-collector.service | 15 + .../buildscripts/packaging/fpm/postinstall.sh | 8 + .../buildscripts/packaging/fpm/preinstall.sh | 3 + .../packaging/fpm/preuninstall.sh | 6 + .../packaging/fpm/rpm/Dockerfile.test | 20 + .../buildscripts/packaging/fpm/rpm/README.md | 14 + .../buildscripts/packaging/fpm/rpm/build.sh | 43 + internal/buildscripts/packaging/fpm/test.sh | 74 + internal/buildscripts/packaging/msi/make.ps1 | 80 + .../msi/opentelemetry-contrib-collector.wxs | 59 + .../packaging/msi/opentelemetry.ico | Bin 0 -> 275598 bytes internal/buildscripts/update-dep | 22 + internal/common/Makefile | 1 + internal/common/docker/images.go | 66 + internal/common/docker/images_test.go | 162 + internal/common/go.mod | 20 + internal/common/go.sum | 68 + internal/common/maps/maps.go | 59 + internal/common/maps/maps_test.go | 52 + internal/common/sanitize/url.go | 34 + internal/common/sanitize/url_test.go | 38 + internal/common/testutil/testutil.go | 136 + internal/common/testutil/testutil_test.go | 107 + internal/common/ttlmap/ttl_map.go | 106 + internal/common/ttlmap/ttl_map_test.go | 53 + internal/components/components.go | 309 + internal/components/components_test.go | 51 + internal/components/exporters_test.go | 528 ++ internal/components/extensions_test.go | 273 + internal/components/processors_test.go | 211 + internal/components/receivers_test.go | 343 + .../unstable_components_disabled.go | 27 + .../components/unstable_components_enabled.go | 26 + internal/containertest/Makefile | 1 + internal/containertest/container.go | 218 + .../container_integration_test.go | 79 + internal/containertest/go.mod | 39 + internal/containertest/go.sum | 986 ++ internal/coreinternal/Makefile | 1 + .../coreinternal/attraction/attraction.go | 369 + .../attraction/attraction_test.go | 938 ++ internal/coreinternal/attraction/hasher.go | 72 + .../coreinternal/attraction/type_converter.go | 84 + internal/coreinternal/go.mod | 37 + internal/coreinternal/go.sum | 259 + .../goldendataset/generator_commons.go | 39 + .../coreinternal/goldendataset/metrics_gen.go | 214 + .../goldendataset/metrics_gen_test.go | 106 + .../goldendataset/pict_metrics_gen.go | 108 + .../goldendataset/pict_metrics_gen_test.go | 96 + .../goldendataset/pict_metrics_input_defs.go | 69 + .../goldendataset/pict_tracing_input_defs.go | 167 + .../goldendataset/resource_generator.go | 131 + .../goldendataset/resource_generator_test.go | 33 + .../goldendataset/span_generator.go | 478 + .../goldendataset/span_generator_test.go | 86 + .../testdata/generated_pict_pairs_metrics.txt | 26 + .../testdata/generated_pict_pairs_spans.txt | 307 + .../testdata/generated_pict_pairs_traces.txt | 33 + .../testdata/pict_input_metrics.txt | 4 + .../testdata/pict_input_spans.txt | 14 + .../testdata/pict_input_traces.txt | 3 + .../goldendataset/traces_generator.go | 133 + .../goldendataset/traces_generator_test.go | 28 + .../idutils/big_endian_converter.go | 48 + .../idutils/big_endian_converter_test.go | 75 + internal/coreinternal/idutils/doc.go | 19 + .../metricstestutil/metricsutil.go | 151 + .../metricstestutil/metricsutil_test.go | 180 + .../coreinternal/occonventions/opencensus.go | 24 + .../processor/filterconfig/config.go | 168 + .../processor/filterconfig/config_test.go | 15 + .../processor/filterexpr/matcher.go | 125 + .../processor/filterexpr/matcher_test.go | 212 + .../processor/filterhelper/filterhelper.go | 39 + .../filterhelper/filterhelper_test.go | 62 + .../processor/filterlog/filterlog.go | 87 + .../processor/filterlog/filterlog_test.go | 176 + .../filtermatcher/attributematcher.go | 132 + .../processor/filtermatcher/filtermatcher.go | 104 + .../filtermatcher/filtermatcher_test.go | 392 + .../processor/filtermetric/config.go | 91 + .../processor/filtermetric/config_test.go | 91 + .../processor/filtermetric/doc.go | 16 + .../processor/filtermetric/expr_matcher.go | 50 + .../processor/filtermetric/filtermetric.go | 67 + .../filtermetric/filtermetric_test.go | 97 + .../processor/filtermetric/helpers_test.go | 26 + .../processor/filtermetric/name_matcher.go | 48 + .../filtermetric/testdata/config.yaml | 24 + .../processor/filterset/config.go | 61 + .../processor/filterset/config_test.go | 91 + .../coreinternal/processor/filterset/doc.go | 16 + .../processor/filterset/filterset.go | 22 + .../processor/filterset/regexp/config.go | 25 + .../processor/filterset/regexp/config_test.go | 56 + .../processor/filterset/regexp/doc.go | 16 + .../filterset/regexp/regexpfilterset.go | 96 + .../filterset/regexp/regexpfilterset_test.go | 208 + .../filterset/regexp/testdata/config.yaml | 10 + .../processor/filterset/strict/doc.go | 16 + .../filterset/strict/strictfilterset.go | 43 + .../filterset/strict/strictfilterset_test.go | 81 + .../processor/filterset/testdata/config.yaml | 16 + .../filterset/testdata/config_invalid.yaml | 6 + .../processor/filterspan/filterspan.go | 136 + .../processor/filterspan/filterspan_test.go | 258 + internal/coreinternal/testdata/common.go | 80 + internal/coreinternal/testdata/log.go | 140 + internal/coreinternal/testdata/metric.go | 302 + internal/coreinternal/testdata/resource.go | 25 + internal/coreinternal/testdata/trace.go | 139 + internal/coreinternal/timeutils/doc.go | 19 + .../coreinternal/timeutils/ticker_helper.go | 62 + .../coreinternal/timeutils/ticker_test.go | 88 + .../tracetranslator/protospan_translation.go | 61 + internal/docker/Makefile | 1 + internal/docker/config.go | 73 + internal/docker/docker.go | 347 + internal/docker/docker_test.go | 252 + internal/docker/go.mod | 38 + internal/docker/go.sum | 1000 ++ internal/docker/matcher.go | 134 + internal/docker/matcher_test.go | 204 + internal/k8sconfig/Makefile | 1 + internal/k8sconfig/config.go | 159 + internal/k8sconfig/go.mod | 44 + internal/k8sconfig/go.sum | 672 ++ internal/kubelet/Makefile | 1 + internal/kubelet/cert.go | 49 + internal/kubelet/client.go | 252 + internal/kubelet/client_config.go | 30 + internal/kubelet/client_test.go | 373 + internal/kubelet/go.mod | 57 + internal/kubelet/go.sum | 698 ++ internal/kubelet/testdata/testcert.crt | 19 + internal/kubelet/testdata/testkey.key | 27 + internal/kubelet/testdata/token | 1 + internal/scrapertest/Makefile | 1 + internal/scrapertest/compare.go | 257 + internal/scrapertest/compare_test.go | 463 + internal/scrapertest/go.mod | 21 + internal/scrapertest/go.sum | 65 + internal/scrapertest/golden/golden.go | 48 + internal/scrapertest/golden/golden_test.go | 153 + .../golden/testdata/roundtrip/expected.json | 129 + internal/scrapertest/mask.go | 136 + .../actual.json | 18 + .../expected.json | 18 + .../actual.json | 18 + .../expected.json | 18 + .../data-point-attribute-extra/actual.json | 35 + .../data-point-attribute-extra/expected.json | 29 + .../data-point-attribute-key/actual.json | 29 + .../data-point-attribute-key/expected.json | 29 + .../data-point-attribute-missing/actual.json | 29 + .../expected.json | 35 + .../data-point-attribute-value/actual.json | 29 + .../data-point-attribute-value/expected.json | 29 + .../actual.json | 19 + .../expected.json | 19 + .../actual.json | 19 + .../expected.json | 19 + .../data-point-slice-dedup/actual.json | 49 + .../data-point-slice-dedup/expected.json | 49 + .../data-point-slice-extra/actual.json | 39 + .../data-point-slice-extra/expected.json | 29 + .../data-point-slice-missing/actual.json | 29 + .../data-point-slice-missing/expected.json | 39 + .../actual.json | 22 + .../expected.json | 22 + .../actual.json | 22 + .../expected.json | 22 + .../data-point-value-expect-int/actual.json | 22 + .../data-point-value-expect-int/expected.json | 22 + .../data-point-value-int-mismatch/actual.json | 22 + .../expected.json | 22 + .../scrapertest/testdata/equal/actual.json | 129 + .../scrapertest/testdata/equal/expected.json | 129 + .../actual.json | 53 + .../expected.json | 53 + .../actual.json | 51 + .../expected.json | 51 + .../actual.json | 22 + .../expected.json | 22 + .../actual.json | 22 + .../expected.json | 22 + .../ignore-each-attribute-value/actual.json | 68 + .../ignore-each-attribute-value/expected.json | 68 + .../ignore-global-attribute-value/actual.json | 68 + .../expected.json | 68 + .../ignore-one-attribute-value/actual.json | 68 + .../ignore-one-attribute-value/expected.json | 68 + .../testdata/ignore-timestamp/actual.json | 34 + .../testdata/ignore-timestamp/expected.json | 34 + .../metric-description-mismatch/actual.json | 17 + .../metric-description-mismatch/expected.json | 17 + .../testdata/metric-name-mismatch/actual.json | 16 + .../metric-name-mismatch/expected.json | 16 + .../testdata/metric-slice-extra/actual.json | 20 + .../testdata/metric-slice-extra/expected.json | 16 + .../testdata/metric-slice-missing/actual.json | 11 + .../metric-slice-missing/expected.json | 16 + .../metric-type-expect-gauge/actual.json | 16 + .../metric-type-expect-gauge/expected.json | 16 + .../metric-type-expect-sum/actual.json | 16 + .../metric-type-expect-sum/expected.json | 16 + .../testdata/metric-unit-mismatch/actual.json | 17 + .../metric-unit-mismatch/expected.json | 17 + .../resource-attributes-mismatch/actual.json | 28 + .../expected.json | 28 + .../testdata/resource-extra/actual.json | 28 + .../testdata/resource-extra/expected.json | 16 + .../actual.json | 20 + .../expected.json | 14 + .../actual.json | 14 + .../expected.json | 20 + .../actual.json | 14 + .../expected.json | 14 + .../actual.json | 14 + .../expected.json | 14 + .../testdata/resource-missing/actual.json | 16 + .../testdata/resource-missing/expected.json | 28 + internal/scrapertest/util.go | 56 + internal/sharedcomponent/Makefile | 1 + internal/sharedcomponent/go.mod | 31 + internal/sharedcomponent/go.sum | 231 + internal/sharedcomponent/sharedcomponent.go | 87 + .../sharedcomponent/sharedcomponent_test.go | 84 + internal/splunk/Makefile | 1 + internal/splunk/common.go | 124 + internal/splunk/common_test.go | 127 + internal/splunk/go.mod | 34 + internal/splunk/go.sum | 281 + internal/splunk/hostid.go | 154 + internal/splunk/hostid_test.go | 268 + internal/splunk/httprequest.go | 67 + internal/splunk/httprequest_test.go | 97 + internal/stanza/Makefile | 1 + internal/stanza/config.go | 69 + internal/stanza/converter.go | 577 ++ internal/stanza/converter_test.go | 1036 +++ internal/stanza/emitter.go | 180 + internal/stanza/emitter_test.go | 154 + internal/stanza/factory.go | 108 + internal/stanza/factory_test.go | 76 + internal/stanza/go.mod | 44 + internal/stanza/go.sum | 316 + internal/stanza/integration_test.go | 154 + internal/stanza/mocks_test.go | 227 + internal/stanza/receiver.go | 149 + internal/stanza/receiver_test.go | 214 + internal/stanza/register.go | 34 + internal/stanza/storage.go | 71 + internal/stanza/storage_test.go | 131 + internal/tools/Makefile | 1 + internal/tools/empty_test.go | 15 + internal/tools/go.mod | 200 + internal/tools/go.sum | 1508 ++++ internal/tools/tools.go | 38 + internal/version/version.go | 18 + internal/version/version_test.go | 17 + pkg/batchperresourceattr/Makefile | 1 + .../batchperresourceattr.go | 178 + .../batchperresourceattr_test.go | 369 + pkg/batchperresourceattr/go.mod | 20 + pkg/batchperresourceattr/go.sum | 70 + pkg/batchpersignal/Makefile | 1 + pkg/batchpersignal/batchpersignal.go | 113 + pkg/batchpersignal/batchpersignal_test.go | 223 + pkg/batchpersignal/go.mod | 15 + pkg/batchpersignal/go.sum | 47 + pkg/experimentalmetricmetadata/Makefile | 1 + pkg/experimentalmetricmetadata/README.md | 3 + pkg/experimentalmetricmetadata/go.mod | 13 + pkg/experimentalmetricmetadata/go.sum | 21 + pkg/experimentalmetricmetadata/metadata.go | 68 + .../metadata_test.go | 50 + pkg/resourcetotelemetry/Makefile | 1 + pkg/resourcetotelemetry/README.md | 13 + pkg/resourcetotelemetry/go.mod | 31 + pkg/resourcetotelemetry/go.sum | 224 + .../resource_to_telemetry.go | 123 + .../resource_to_telemetry_test.go | 78 + pkg/translator/jaeger/Makefile | 1 + pkg/translator/jaeger/constants.go | 31 + pkg/translator/jaeger/go.mod | 28 + pkg/translator/jaeger/go.sum | 101 + .../jaeger/jaegerproto_to_traces.go | 398 + .../jaeger/jaegerproto_to_traces_test.go | 860 ++ .../jaeger/jaegerthrift_to_traces.go | 191 + .../jaeger/jaegerthrift_to_traces_test.go | 305 + .../jaeger/testdata/jaegerproto_batch_01.json | 202 + .../jaeger/testdata/jaegerproto_batch_02.json | 80 + .../jaeger/testdata/ocproto_batch_01.json | 139 + .../jaeger/testdata/ocproto_batch_02.json | 69 + .../proto_batch_no_binary_tags_01.json | 149 + .../proto_batch_no_binary_tags_02.json | 65 + .../jaeger/testdata/thrift_batch_01.json | 116 + .../jaeger/testdata/thrift_batch_02.json | 44 + .../jaeger/traces_to_jaegerproto.go | 412 + .../jaeger/traces_to_jaegerproto_test.go | 365 + pkg/translator/opencensus/Makefile | 1 + pkg/translator/opencensus/go.mod | 34 + pkg/translator/opencensus/go.sum | 196 + pkg/translator/opencensus/metrics_to_oc.go | 428 + .../opencensus/metrics_to_oc_test.go | 300 + pkg/translator/opencensus/oc_testdata_test.go | 659 ++ pkg/translator/opencensus/oc_to_metrics.go | 365 + .../opencensus/oc_to_metrics_test.go | 216 + pkg/translator/opencensus/oc_to_resource.go | 140 + .../opencensus/oc_to_resource_test.go | 103 + pkg/translator/opencensus/oc_to_traces.go | 367 + .../opencensus/oc_to_traces_test.go | 465 + pkg/translator/opencensus/resource_to_oc.go | 174 + .../opencensus/resource_to_oc_test.go | 260 + pkg/translator/opencensus/timestamp.go | 28 + pkg/translator/opencensus/traces_to_oc.go | 393 + .../opencensus/traces_to_oc_test.go | 369 + pkg/translator/prometheusremotewrite/Makefile | 1 + pkg/translator/prometheusremotewrite/go.mod | 25 + pkg/translator/prometheusremotewrite/go.sum | 1936 ++++ .../prometheusremotewrite/helper.go | 561 ++ .../prometheusremotewrite/helper_test.go | 638 ++ .../prometheusremotewrite/metrics_to_prw.go | 119 + .../prometheusremotewrite/testutils_test.go | 445 + pkg/translator/signalfx/Makefile | 1 + pkg/translator/signalfx/from_metrics.go | 281 + pkg/translator/signalfx/from_metrics_test.go | 493 + pkg/translator/signalfx/go.mod | 24 + pkg/translator/signalfx/go.sum | 84 + pkg/translator/signalfx/timestamp.go | 29 + pkg/translator/signalfx/to_metrics.go | 112 + pkg/translator/signalfx/to_metrics_test.go | 243 + pkg/translator/zipkin/Makefile | 1 + pkg/translator/zipkin/go.mod | 40 + pkg/translator/zipkin/go.sum | 291 + .../zipkin/internal/zipkin/attributes.go | 60 + .../zipkin/zipkinv1/consumerdata.go | 29 + .../zipkin/zipkinv1/grpc_http_mapper.go | 65 + .../zipkin/zipkinv1/grpc_http_mapper_test.go | 28 + pkg/translator/zipkin/zipkinv1/json.go | 538 ++ pkg/translator/zipkin/zipkinv1/json_test.go | 796 ++ pkg/translator/zipkin/zipkinv1/status_code.go | 204 + .../zipkin/zipkinv1/status_code_test.go | 277 + .../testdata/zipkin_v1_error_batch.json | 64 + .../testdata/zipkin_v1_local_component.json | 37 + .../testdata/zipkin_v1_multiple_batches.json | 154 + .../testdata/zipkin_v1_single_batch.json | 144 + .../zipkin_v1_thrift_local_component.json | 39 + .../zipkin_v1_thrift_single_batch.json | 148 + pkg/translator/zipkin/zipkinv1/thrift.go | 288 + pkg/translator/zipkin/zipkinv1/thrift_test.go | 641 ++ .../zipkin/zipkinv1/to_translator.go | 32 + .../zipkin/zipkinv2/from_translator.go | 391 + .../zipkin/zipkinv2/from_translator_test.go | 217 + pkg/translator/zipkin/zipkinv2/json.go | 48 + pkg/translator/zipkin/zipkinv2/json_test.go | 56 + pkg/translator/zipkin/zipkinv2/marshaler.go | 34 + pkg/translator/zipkin/zipkinv2/protobuf.go | 52 + .../zipkin/zipkinv2/protobuf_test.go | 49 + .../testdata/zipkin_v2_notimestamp.json | 65 + .../zipkinv2/testdata/zipkin_v2_single.json | 38 + .../zipkin/zipkinv2/to_translator.go | 479 + .../zipkin/zipkinv2/to_translator_test.go | 184 + pkg/winperfcounters/Makefile | 1 + pkg/winperfcounters/config.go | 33 + pkg/winperfcounters/config_windows.go | 32 + pkg/winperfcounters/go.mod | 21 + pkg/winperfcounters/go.sum | 37 + pkg/winperfcounters/internal/pdh/pdh.go | 115 + .../internal/pdh/pdh_notwindows.go | 18 + pkg/winperfcounters/internal/pdh/pdh_test.go | 130 + .../telegraf/win_perf_counters/LICENSE | 21 + .../telegraf/win_perf_counters/kernel32.go | 74 + .../telegraf/win_perf_counters/pdh.go | 502 ++ .../telegraf/win_perf_counters/pdh_386.go | 122 + .../telegraf/win_perf_counters/pdh_amd64.go | 115 + .../win_perf_counters/performance_query.go | 232 + .../win_perf_counters_notwindows.go | 4 + pkg/winperfcounters/watcher.go | 125 + pkg/winperfcounters/watcher_test.go | 327 + processor/attributesprocessor/Makefile | 1 + processor/attributesprocessor/README.md | 251 + .../attributesprocessor/attributes_log.go | 92 + .../attributes_log_test.go | 500 + .../attributesprocessor/attributes_metric.go | 100 + .../attributes_metric_test.go | 544 ++ .../attributesprocessor/attributes_trace.go | 67 + .../attributes_trace_test.go | 553 ++ processor/attributesprocessor/config.go | 47 + processor/attributesprocessor/config_test.go | 214 + processor/attributesprocessor/doc.go | 17 + processor/attributesprocessor/factory.go | 149 + processor/attributesprocessor/factory_test.go | 175 + processor/attributesprocessor/go.mod | 37 + processor/attributesprocessor/go.sum | 308 + .../attributesprocessor/testdata/config.yaml | 341 + processor/cumulativetodeltaprocessor/Makefile | 1 + .../cumulativetodeltaprocessor/README.md | 33 + .../cumulativetodeltaprocessor/config.go | 44 + .../cumulativetodeltaprocessor/config_test.go | 99 + processor/cumulativetodeltaprocessor/doc.go | 17 + .../cumulativetodeltaprocessor/factory.go | 67 + .../factory_test.go | 92 + processor/cumulativetodeltaprocessor/go.mod | 34 + processor/cumulativetodeltaprocessor/go.sum | 290 + .../internal/tracking/identity.go | 86 + .../internal/tracking/identity_test.go | 178 + .../internal/tracking/metric.go | 20 + .../internal/tracking/tracker.go | 179 + .../internal/tracking/tracker_test.go | 258 + .../internal/tracking/value.go | 23 + .../cumulativetodeltaprocessor/processor.go | 141 + .../processor_test.go | 241 + .../testdata/config.yaml | 23 + .../testdata/config_missing_name.yaml | 20 + processor/deltatorateprocessor/Makefile | 1 + processor/deltatorateprocessor/README.md | 26 + processor/deltatorateprocessor/config.go | 38 + processor/deltatorateprocessor/config_test.go | 97 + processor/deltatorateprocessor/doc.go | 17 + processor/deltatorateprocessor/factory.go | 67 + .../deltatorateprocessor/factory_test.go | 92 + processor/deltatorateprocessor/go.mod | 34 + processor/deltatorateprocessor/go.sum | 290 + processor/deltatorateprocessor/processor.go | 113 + .../deltatorateprocessor/processor_test.go | 265 + .../testdata/config_full.yaml | 22 + .../testdata/config_missing_name.yaml | 20 + processor/filterprocessor/Makefile | 1 + processor/filterprocessor/README.md | 206 + processor/filterprocessor/config.go | 89 + processor/filterprocessor/config_test.go | 351 + processor/filterprocessor/doc.go | 17 + processor/filterprocessor/expr_test.go | 200 + processor/filterprocessor/factory.go | 81 + processor/filterprocessor/factory_test.go | 100 + processor/filterprocessor/filter_processor.go | 202 + .../filterprocessor/filter_processor_logs.go | 204 + .../filter_processor_logs_test.go | 452 + .../filterprocessor/filter_processor_test.go | 521 ++ processor/filterprocessor/go.mod | 37 + processor/filterprocessor/go.sum | 308 + .../filterprocessor/testdata/config_expr.yaml | 41 + .../testdata/config_invalid.yaml | 26 + .../config_logs_record_attributes_regexp.yaml | 49 + .../config_logs_record_attributes_strict.yaml | 53 + .../testdata/config_logs_regexp.yaml | 49 + .../testdata/config_logs_strict.yaml | 53 + .../testdata/config_regexp.yaml | 79 + .../testdata/config_strict.yaml | 51 + processor/groupbyattrsprocessor/Makefile | 1 + processor/groupbyattrsprocessor/README.md | 190 + .../groupbyattrsprocessor/attribute_groups.go | 249 + .../attribute_groups_test.go | 162 + processor/groupbyattrsprocessor/config.go | 28 + .../groupbyattrsprocessor/config_test.go | 64 + processor/groupbyattrsprocessor/doc.go | 18 + processor/groupbyattrsprocessor/factory.go | 131 + .../groupbyattrsprocessor/factory_test.go | 65 + processor/groupbyattrsprocessor/go.mod | 36 + processor/groupbyattrsprocessor/go.sum | 284 + processor/groupbyattrsprocessor/metrics.go | 99 + .../groupbyattrsprocessor/metrics_test.go | 37 + processor/groupbyattrsprocessor/processor.go | 257 + .../groupbyattrsprocessor/processor_test.go | 839 ++ .../testdata/config.yaml | 25 + processor/groupbytraceprocessor/Makefile | 1 + processor/groupbytraceprocessor/README.md | 60 + processor/groupbytraceprocessor/config.go | 50 + processor/groupbytraceprocessor/doc.go | 15 + processor/groupbytraceprocessor/event.go | 382 + processor/groupbytraceprocessor/event_test.go | 540 ++ processor/groupbytraceprocessor/factory.go | 90 + .../groupbytraceprocessor/factory_test.go | 79 + processor/groupbytraceprocessor/go.mod | 35 + processor/groupbytraceprocessor/go.sum | 277 + processor/groupbytraceprocessor/metrics.go | 91 + .../groupbytraceprocessor/metrics_test.go | 39 + processor/groupbytraceprocessor/processor.go | 248 + .../groupbytraceprocessor/processor_test.go | 666 ++ .../groupbytraceprocessor/ring_buffer.go | 69 + .../groupbytraceprocessor/ring_buffer_test.go | 76 + processor/groupbytraceprocessor/storage.go | 43 + .../groupbytraceprocessor/storage_memory.go | 120 + .../storage_memory_test.go | 162 + .../testdata/config.yaml | 17 + processor/k8sattributesprocessor/Makefile | 1 + processor/k8sattributesprocessor/README.md | 1 + .../k8sattributesprocessor/client_test.go | 83 + processor/k8sattributesprocessor/config.go | 216 + .../k8sattributesprocessor/config_test.go | 136 + processor/k8sattributesprocessor/doc.go | 207 + processor/k8sattributesprocessor/factory.go | 252 + .../k8sattributesprocessor/factory_test.go | 72 + processor/k8sattributesprocessor/go.mod | 71 + processor/k8sattributesprocessor/go.sum | 811 ++ .../internal/kube/client.go | 593 ++ .../internal/kube/client_test.go | 1127 +++ .../internal/kube/fake_informer.go | 165 + .../internal/kube/informer.go | 104 + .../internal/kube/informer_test.go | 143 + .../internal/kube/kube.go | 191 + .../internal/observability/empty_test.go | 15 + .../internal/observability/observability.go | 145 + .../observability/observability_test.go | 160 + processor/k8sattributesprocessor/options.go | 308 + .../k8sattributesprocessor/options_test.go | 785 ++ .../k8sattributesprocessor/pod_association.go | 127 + processor/k8sattributesprocessor/processor.go | 190 + .../k8sattributesprocessor/processor_test.go | 1146 +++ .../testdata/config.yaml | 98 + processor/metricsgenerationprocessor/Makefile | 1 + .../metricsgenerationprocessor/README.md | 68 + .../metricsgenerationprocessor/config.go | 181 + .../metricsgenerationprocessor/config_test.go | 141 + processor/metricsgenerationprocessor/doc.go | 17 + .../metricsgenerationprocessor/factory.go | 86 + .../factory_test.go | 92 + processor/metricsgenerationprocessor/go.mod | 34 + processor/metricsgenerationprocessor/go.sum | 290 + .../metricsgenerationprocessor/processor.go | 91 + .../processor_test.go | 398 + .../testdata/config_full.yaml | 32 + .../config_invalid_generation_type.yaml | 25 + .../testdata/config_invalid_operation.yaml | 25 + .../testdata/config_missing_new_metric.yaml | 25 + .../testdata/config_missing_operand1.yaml | 25 + .../testdata/config_missing_operand2.yaml | 25 + .../testdata/config_missing_scale_by.yaml | 25 + .../testdata/config_missing_type.yaml | 25 + processor/metricsgenerationprocessor/utils.go | 122 + .../metricsgenerationprocessor/utils_test.go | 62 + processor/metricstransformprocessor/Makefile | 1 + processor/metricstransformprocessor/README.md | 339 + processor/metricstransformprocessor/config.go | 307 + .../metricstransformprocessor/config_test.go | 187 + .../datapoint_aggregation.go | 223 + processor/metricstransformprocessor/doc.go | 17 + .../metricstransformprocessor/factory.go | 241 + .../metricstransformprocessor/factory_test.go | 311 + processor/metricstransformprocessor/go.mod | 48 + processor/metricstransformprocessor/go.sum | 330 + .../metrics_testcase_builder_test.go | 158 + .../metrics_transform_processor.go | 487 + .../metrics_transform_processor_group_test.go | 224 + .../metrics_transform_processor_test.go | 174 + ...rics_transform_processor_testcases_test.go | 1873 ++++ .../operation_add_label.go | 31 + .../operation_aggregate_label_values.go | 98 + .../operation_aggregate_labels.go | 80 + .../operation_delete_label_value.go | 38 + .../operation_scale_value.go | 30 + .../operation_toggle_scalar_datatype.go | 41 + .../operation_update_label.go | 41 + .../testdata/config_deprecated.yaml | 23 + .../testdata/config_full.yaml | 83 + .../testdata/config_invalid_action.yaml | 22 + .../config_invalid_aggregationtype.yaml | 24 + .../testdata/config_invalid_group.yaml | 24 + .../testdata/config_invalid_include.yaml | 21 + ...config_invalid_include_and_metricname.yaml | 23 + .../testdata/config_invalid_label.yaml | 24 + .../testdata/config_invalid_matchtype.yaml | 23 + .../testdata/config_invalid_newname.yaml | 22 + .../config_invalid_operation_action.yaml | 24 + ...fig_invalid_operation_aggregationtype.yaml | 25 + .../testdata/config_invalid_regexp.yaml | 23 + .../testdata/config_invalid_scale.yaml | 24 + .../testdata/config_invalid_submatchcase.yaml | 24 + .../probabilisticsamplerprocessor/Makefile | 1 + .../probabilisticsamplerprocessor/README.md | 33 + .../probabilisticsamplerprocessor/config.go | 40 + .../config_test.go | 61 + .../probabilisticsamplerprocessor/factory.go | 52 + .../factory_test.go | 39 + .../probabilisticsamplerprocessor/go.mod | 34 + .../probabilisticsamplerprocessor/go.sum | 285 + .../probabilisticsampler.go | 208 + .../probabilisticsampler_test.go | 512 ++ .../testdata/config.yaml | 35 + .../testdata/empty.yaml | 16 + processor/redactionprocessor/Makefile | 1 + processor/redactionprocessor/README.md | 90 + processor/redactionprocessor/config.go | 44 + processor/redactionprocessor/config_test.go | 53 + processor/redactionprocessor/factory.go | 69 + processor/redactionprocessor/factory_test.go | 42 + processor/redactionprocessor/go.mod | 34 + processor/redactionprocessor/go.sum | 291 + processor/redactionprocessor/processor.go | 244 + .../redactionprocessor/processor_test.go | 422 + .../redactionprocessor/testdata/config.yaml | 42 + .../redactionprocessor/testdata/empty.yaml | 18 + processor/resourcedetectionprocessor/Makefile | 1 + .../resourcedetectionprocessor/README.md | 292 + .../resourcedetectionprocessor/config.go | 75 + .../resourcedetectionprocessor/config_test.go | 147 + processor/resourcedetectionprocessor/doc.go | 17 + .../resourcedetectionprocessor/factory.go | 214 + .../factory_test.go | 67 + processor/resourcedetectionprocessor/go.mod | 106 + processor/resourcedetectionprocessor/go.sum | 1493 +++ .../internal/aws/ec2/config.go | 22 + .../internal/aws/ec2/ec2.go | 172 + .../internal/aws/ec2/ec2_test.go | 285 + .../internal/aws/ec2/metadata.go | 52 + .../internal/aws/ec2/metadata_test.go | 91 + .../internal/aws/ecs/ecs.go | 180 + .../internal/aws/ecs/ecs_test.go | 178 + .../internal/aws/eks/detector.go | 122 + .../internal/aws/eks/detector_test.go | 71 + .../aws/elasticbeanstalk/elasticbeanstalk.go | 86 + .../elasticbeanstalk/elasticbeanstalk_test.go | 111 + .../internal/aws/elasticbeanstalk/fs.go | 36 + .../internal/azure/aks/aks.go | 72 + .../internal/azure/aks/aks_test.go | 81 + .../internal/azure/azure.go | 72 + .../internal/azure/azure_test.go | 80 + .../internal/azure/metadata.go | 106 + .../internal/azure/metadata_test.go | 88 + .../internal/azure/mockprovider.go | 35 + .../internal/azure/mockprovider_test.go | 32 + .../internal/consul/config.go | 53 + .../internal/consul/consul.go | 92 + .../internal/consul/consul_test.go | 71 + .../internal/consul/metadata.go | 88 + .../internal/consul/metadata_test.go | 62 + .../internal/context.go | 45 + .../internal/docker/docker.go | 71 + .../internal/docker/docker_test.go | 63 + .../internal/docker/metadata.go | 61 + .../internal/docker/metadata_test.go | 53 + .../internal/env/env.go | 111 + .../internal/env/env_test.go | 128 + .../internal/gcp/gce/gce.go | 105 + .../internal/gcp/gce/gce_test.go | 103 + .../internal/gcp/gke/gke.go | 78 + .../internal/gcp/gke/gke_test.go | 122 + .../internal/gcp/metadata.go | 64 + .../internal/gcp/metadata_test.go | 31 + .../internal/gcp/mockmetadata.go | 64 + .../internal/gcp/mockmetadata_test.go | 42 + .../internal/resourcedetection.go | 255 + .../internal/resourcedetection_test.go | 368 + .../internal/system/config.go | 36 + .../internal/system/metadata.go | 49 + .../internal/system/system.go | 100 + .../internal/system/system_test.go | 177 + .../internal/testutils.go | 47 + .../resourcedetection_processor.go | 82 + .../resourcedetection_processor_test.go | 359 + .../testdata/config.yaml | 53 + .../testdata/invalid_config.yaml | 22 + processor/resourceprocessor/Makefile | 1 + processor/resourceprocessor/README.md | 28 + processor/resourceprocessor/config.go | 37 + processor/resourceprocessor/config_test.go | 51 + processor/resourceprocessor/doc.go | 17 + processor/resourceprocessor/factory.go | 113 + processor/resourceprocessor/factory_test.go | 80 + processor/resourceprocessor/go.mod | 34 + processor/resourceprocessor/go.sum | 285 + .../resourceprocessor/resource_processor.go | 55 + .../resource_processor_test.go | 212 + .../resourceprocessor/testdata/config.yaml | 41 + processor/routingprocessor/Makefile | 1 + processor/routingprocessor/README.md | 52 + processor/routingprocessor/config.go | 111 + processor/routingprocessor/config_test.go | 131 + processor/routingprocessor/extract.go | 77 + processor/routingprocessor/extract_test.go | 155 + processor/routingprocessor/factory.go | 69 + processor/routingprocessor/factory_test.go | 226 + processor/routingprocessor/go.mod | 61 + processor/routingprocessor/go.sum | 778 ++ processor/routingprocessor/processor.go | 115 + processor/routingprocessor/processor_test.go | 1014 +++ processor/routingprocessor/router.go | 506 ++ .../testdata/config_logs.yaml | 33 + .../testdata/config_metrics.yaml | 33 + .../testdata/config_multipipelines.yaml | 31 + .../testdata/config_traces.yaml | 36 + processor/spanmetricsprocessor/Makefile | 1 + processor/spanmetricsprocessor/README.md | 133 + processor/spanmetricsprocessor/config.go | 80 + processor/spanmetricsprocessor/config_test.go | 125 + processor/spanmetricsprocessor/factory.go | 51 + .../spanmetricsprocessor/factory_test.go | 81 + processor/spanmetricsprocessor/go.mod | 109 + processor/spanmetricsprocessor/go.sum | 658 ++ .../internal/cache/cache.go | 79 + .../internal/cache/cache_test.go | 212 + processor/spanmetricsprocessor/mocks/Host.go | 81 + .../mocks/MetricsExporter.go | 77 + .../mocks/TracesConsumer.go | 48 + processor/spanmetricsprocessor/processor.go | 574 ++ .../spanmetricsprocessor/processor_test.go | 844 ++ .../testdata/config-2-pipelines.yaml | 45 + .../testdata/config-3-pipelines.yaml | 65 + .../testdata/config-exporter-not-found.yaml | 47 + .../testdata/config-full.yaml | 86 + .../config-prometheusremotewrite.yaml | 73 + .../testdata/config-simplest.yaml | 43 + processor/spanprocessor/Makefile | 1 + processor/spanprocessor/README.md | 124 + processor/spanprocessor/config.go | 100 + processor/spanprocessor/config_test.go | 121 + processor/spanprocessor/doc.go | 17 + processor/spanprocessor/factory.go | 99 + processor/spanprocessor/factory_test.go | 104 + processor/spanprocessor/go.mod | 36 + processor/spanprocessor/go.sum | 288 + processor/spanprocessor/span.go | 240 + processor/spanprocessor/span_test.go | 679 ++ processor/spanprocessor/testdata/config.yaml | 113 + processor/tailsamplingprocessor/Makefile | 1 + processor/tailsamplingprocessor/README.md | 166 + processor/tailsamplingprocessor/and_helper.go | 57 + .../tailsamplingprocessor/composite_helper.go | 85 + .../composite_helper_test.go | 101 + processor/tailsamplingprocessor/config.go | 211 + .../tailsamplingprocessor/config_test.go | 135 + processor/tailsamplingprocessor/factory.go | 65 + .../tailsamplingprocessor/factory_test.go | 55 + processor/tailsamplingprocessor/go.mod | 36 + processor/tailsamplingprocessor/go.sum | 287 + .../internal/idbatcher/id_batcher.go | 146 + .../internal/idbatcher/id_batcher_test.go | 163 + .../internal/sampling/always_sample.go | 39 + .../internal/sampling/always_sample_test.go | 31 + .../internal/sampling/and.go | 60 + .../internal/sampling/and_test.go | 80 + .../internal/sampling/composite.go | 153 + .../internal/sampling/composite_test.go | 270 + .../internal/sampling/doc.go | 17 + .../internal/sampling/latency.go | 60 + .../internal/sampling/latency_test.go | 107 + .../internal/sampling/numeric_tag_filter.go | 57 + .../sampling/numeric_tag_filter_test.go | 92 + .../internal/sampling/policy.go | 72 + .../internal/sampling/probabilistic.go | 82 + .../internal/sampling/probabilistic_test.go | 113 + .../internal/sampling/rate_limiting.go | 57 + .../internal/sampling/rate_limiting_test.go | 53 + .../internal/sampling/status_code.go | 77 + .../internal/sampling/status_code_test.go | 94 + .../internal/sampling/string_tag_filter.go | 168 + .../sampling/string_tag_filter_test.go | 255 + .../internal/sampling/time_provider.go | 34 + .../internal/sampling/time_provider_test.go | 26 + .../internal/sampling/util.go | 118 + processor/tailsamplingprocessor/metrics.go | 134 + processor/tailsamplingprocessor/processor.go | 442 + .../tailsamplingprocessor/processor_test.go | 697 ++ .../testdata/tail_sampling_config.yaml | 111 + processor/transformprocessor/Makefile | 1 + processor/transformprocessor/README.md | 58 + processor/transformprocessor/config.go | 42 + processor/transformprocessor/config_test.go | 68 + processor/transformprocessor/doc.go | 17 + processor/transformprocessor/factory.go | 71 + processor/transformprocessor/factory_test.go | 90 + processor/transformprocessor/go.mod | 34 + processor/transformprocessor/go.sum | 296 + .../internal/common/condition.go | 57 + .../internal/common/condition_test.go | 176 + .../internal/common/expression.go | 86 + .../internal/common/expression_test.go | 103 + .../internal/common/functions.go | 127 + .../internal/common/functions_test.go | 122 + .../internal/common/parser.go | 139 + .../internal/common/parser_test.go | 316 + .../internal/traces/functions.go | 24 + .../internal/traces/functions_test.go | 190 + .../internal/traces/processor.go | 65 + .../internal/traces/processor_test.go | 225 + .../internal/traces/traces.go | 532 ++ .../internal/traces/traces_test.go | 763 ++ .../transformprocessor/testdata/config.yaml | 19 + .../testdata/invalid_config_bad_syntax.yaml | 19 + .../invalid_config_unknown_function.yaml | 19 + receiver/apachereceiver/Makefile | 1 + receiver/apachereceiver/README.md | 38 + receiver/apachereceiver/config.go | 59 + receiver/apachereceiver/config_test.go | 87 + receiver/apachereceiver/doc.go | 17 + receiver/apachereceiver/documentation.md | 33 + receiver/apachereceiver/factory.go | 72 + receiver/apachereceiver/factory_test.go | 54 + receiver/apachereceiver/go.mod | 75 + receiver/apachereceiver/go.sum | 1165 +++ receiver/apachereceiver/integration_test.go | 135 + .../internal/metadata/generated_metrics_v2.go | 550 ++ receiver/apachereceiver/metadata.yaml | 86 + receiver/apachereceiver/scraper.go | 212 + receiver/apachereceiver/scraper_test.go | 181 + receiver/apachereceiver/testdata/config.yaml | 17 + .../testdata/integration/Dockerfile.apache | 3 + .../testdata/integration/expected.json | 361 + .../testdata/integration/httpd.conf | 555 ++ .../testdata/scraper/expected.json | 364 + receiver/awscontainerinsightreceiver/Makefile | 1 + .../awscontainerinsightreceiver/README.md | 857 ++ .../awscontainerinsightreceiver/config.go | 45 + .../config_test.go | 58 + .../awscontainerinsightreceiver/design.md | 48 + receiver/awscontainerinsightreceiver/doc.go | 15 + .../awscontainerinsightreceiver/factory.go | 77 + .../factory_test.go | 41 + receiver/awscontainerinsightreceiver/go.mod | 140 + receiver/awscontainerinsightreceiver/go.sum | 1441 +++ .../images/ecs-design.png | Bin 0 -> 170943 bytes .../images/eks-design.png | Bin 0 -> 151331 bytes .../internal/cadvisor/cadvisor_linux.go | 404 + .../internal/cadvisor/cadvisor_linux_test.go | 134 + .../internal/cadvisor/cadvisor_nolinux.go | 67 + .../cadvisor/container_info_processor.go | 219 + .../cadvisor/container_info_processor_test.go | 83 + .../cadvisor/extractors/cpu_extractor.go | 70 + .../cadvisor/extractors/cpu_extractor_test.go | 83 + .../cadvisor/extractors/diskio_extractor.go | 102 + .../extractors/diskio_extractor_test.go | 110 + .../internal/cadvisor/extractors/extractor.go | 200 + .../extractors/extractor_helpers_test.go | 112 + .../cadvisor/extractors/extractor_test.go | 135 + .../cadvisor/extractors/fs_extractor.go | 104 + .../cadvisor/extractors/fs_extractor_test.go | 150 + .../cadvisor/extractors/mem_extractor.go | 82 + .../cadvisor/extractors/mem_extractor_test.go | 111 + .../cadvisor/extractors/net_extractor.go | 120 + .../cadvisor/extractors/net_extractor_test.go | 169 + .../testdata/ContainerInContainer.json | 192 + .../extractors/testdata/CurInfoContainer.json | 196 + .../extractors/testdata/CurInfoNode.json | 2100 +++++ .../extractors/testdata/FileSystemStat.json | 163 + .../cadvisor/extractors/testdata/InfoPod.json | 177 + .../extractors/testdata/PreInfoContainer.json | 196 + .../extractors/testdata/PreInfoNode.json | 2100 +++++ .../internal/cadvisor/testutils/ecshelpers.go | 40 + .../internal/cadvisor/testutils/helpers.go | 85 + .../internal/ecsInfo/cgroup.go | 290 + .../internal/ecsInfo/cgroup_test.go | 352 + .../internal/ecsInfo/ecs_instance_info.go | 120 + .../ecsInfo/ecs_instance_info_test.go | 95 + .../internal/ecsInfo/ecs_task_info.go | 131 + .../internal/ecsInfo/ecs_task_info_test.go | 102 + .../internal/ecsInfo/ecsinfo.go | 174 + .../internal/ecsInfo/ecsinfo_test.go | 146 + .../test/cpu/ecs/myCluster/test4/cpu.shares | 1 + .../ecsInfo/test/cpu/ecs/test1/cpu.shares | 1 + .../test/cpu/ecs/test2/cpu.cfs_period_us | 1 + .../test/cpu/ecs/test2/cpu.cfs_quota_us | 1 + .../test/cpu/ecs/test3/cpu.cfs_period_us | 1 + .../test/cpu/ecs/test3/cpu.cfs_quota_us | 1 + .../ecsInfo/test/cpu/ecs/test3/cpu.shares | 1 + .../internal/ecsInfo/test/ecsinfo/clusterinfo | 5 + .../internal/ecsInfo/test/ecsinfo/taskinfo | 23 + .../ecsInfo/test/ecsinfo/taskinfo_wrong | 22 + .../ecs/myCluster/test3/memory.limit_in_bytes | 1 + .../memory/ecs/test1/memory.limit_in_bytes | 1 + .../test2/container1/memory.limit_in_bytes | 1 + .../container1/memory.soft_limit_in_bytes | 1 + .../test2/container2/memory.limit_in_bytes | 1 + .../memory/ecs/test2/memory.limit_in_bytes | 1 + .../internal/ecsInfo/test/mountinfo | 16 + .../internal/ecsInfo/test/mountinfo_err1 | 16 + .../internal/ecsInfo/test/mountinfo_err2 | 1 + .../internal/ecsInfo/test/mountinfo_err3 | 16 + .../internal/ecsInfo/utils.go | 118 + .../internal/ecsInfo/utils_test.go | 163 + .../internal/host/ebsvolume.go | 225 + .../internal/host/ebsvolume_test.go | 195 + .../internal/host/ec2metadata.go | 113 + .../internal/host/ec2metadata_test.go | 64 + .../internal/host/ec2tags.go | 157 + .../internal/host/ec2tags_test.go | 126 + .../internal/host/hostinfo.go | 191 + .../internal/host/hostinfo_test.go | 229 + .../internal/host/nodeCapacity.go | 100 + .../internal/host/nodeCapacity_test.go | 97 + .../internal/host/testdata/mounts | 4 + .../internal/host/utils.go | 67 + .../internal/k8sapiserver/k8sapiserver.go | 335 + .../k8sapiserver/k8sapiserver_test.go | 261 + .../stores/kubeletutil/kubeletclient.go | 75 + .../internal/stores/nodeinfo.go | 121 + .../internal/stores/nodeinfo_test.go | 84 + .../internal/stores/podstore.go | 635 ++ .../internal/stores/podstore_test.go | 681 ++ .../internal/stores/servicestore.go | 95 + .../internal/stores/servicestore_test.go | 70 + .../internal/stores/store.go | 110 + .../internal/stores/utils.go | 183 + .../internal/stores/utils_test.go | 138 + .../awscontainerinsightreceiver/receiver.go | 164 + .../receiver_test.go | 151 + .../testdata/config.yaml | 14 + .../awsecscontainermetricsreceiver/Makefile | 1 + .../awsecscontainermetricsreceiver/README.md | 363 + .../awsecscontainermetricsreceiver/config.go | 29 + .../config_test.go | 52 + .../awsecscontainermetricsreceiver/doc.go | 15 + .../awsecscontainermetricsreceiver/factory.go | 76 + .../factory_test.go | 84 + .../awsecscontainermetricsreceiver/go.mod | 47 + .../awsecscontainermetricsreceiver/go.sum | 319 + .../awsecscontainermetrics/accumulator.go | 126 + .../accumulator_test.go | 265 + .../awsecscontainermetrics/constant.go | 82 + .../awsecscontainermetrics/docker_stats.go | 102 + .../awsecscontainermetrics/ecs_metrics.go | 49 + .../awsecscontainermetrics/metrics.go | 30 + .../awsecscontainermetrics/metrics_helper.go | 164 + .../metrics_helper_test.go | 312 + .../awsecscontainermetrics/metrics_test.go | 108 + .../awsecscontainermetrics/resource.go | 115 + .../awsecscontainermetrics/resource_test.go | 206 + .../awsecscontainermetrics/stats_provider.go | 62 + .../stats_provider_test.go | 90 + .../awsecscontainermetrics/translator.go | 116 + .../awsecscontainermetrics/translator_test.go | 76 + .../receiver.go | 106 + .../receiver_test.go | 143 + .../testdata/config.yaml | 13 + .../testdata/task_stats.json | 268 + receiver/awsfirehosereceiver/Makefile | 1 + receiver/awsfirehosereceiver/README.md | 51 + receiver/awsfirehosereceiver/config.go | 52 + receiver/awsfirehosereceiver/config_test.go | 54 + receiver/awsfirehosereceiver/doc.go | 24 + receiver/awsfirehosereceiver/factory.go | 91 + receiver/awsfirehosereceiver/factory_test.go | 46 + receiver/awsfirehosereceiver/go.mod | 44 + receiver/awsfirehosereceiver/go.sum | 328 + .../unmarshaler/cwmetricstream/cwmetric.go | 58 + .../cwmetricstream/metricsbuilder.go | 191 + .../cwmetricstream/metricsbuilder_test.go | 219 + .../cwmetricstream/testdata/invalid_records | 4 + .../cwmetricstream/testdata/multiple_records | 127 + .../cwmetricstream/testdata/single_record | 1 + .../testdata/some_invalid_records | 92 + .../unmarshaler/cwmetricstream/unmarshaler.go | 116 + .../cwmetricstream/unmarshaler_test.go | 95 + .../internal/unmarshaler/unmarshaler.go | 28 + .../unmarshalertest/nop_unmarshaler.go | 60 + .../unmarshalertest/nop_unmarshaler_test.go | 52 + .../awsfirehosereceiver/metrics_receiver.go | 95 + .../metrics_receiver_test.go | 136 + receiver/awsfirehosereceiver/receiver.go | 295 + receiver/awsfirehosereceiver/receiver_test.go | 262 + .../awsfirehosereceiver/testdata/config.yaml | 21 + receiver/awsxrayreceiver/Makefile | 1 + receiver/awsxrayreceiver/README.md | 73 + receiver/awsxrayreceiver/config.go | 34 + receiver/awsxrayreceiver/config_test.go | 101 + receiver/awsxrayreceiver/doc.go | 19 + receiver/awsxrayreceiver/factory.go | 61 + receiver/awsxrayreceiver/factory_test.go | 89 + receiver/awsxrayreceiver/go.mod | 52 + receiver/awsxrayreceiver/go.sum | 299 + .../awsxrayreceiver/internal/errors/errors.go | 45 + .../internal/socketconn/socketconn.go | 24 + .../internal/tracesegment/tracesegment.go | 30 + .../tracesegment/tracesegment_test.go | 76 + .../internal/tracesegment/util.go | 62 + .../internal/tracesegment/util_test.go | 97 + .../internal/translator/addtoattrs.go | 35 + .../internal/translator/annotations.go | 39 + .../internal/translator/annotations_test.go | 48 + .../internal/translator/aws.go | 79 + .../internal/translator/cause.go | 119 + .../internal/translator/cause_test.go | 105 + .../internal/translator/http.go | 68 + .../internal/translator/metadata.go | 35 + .../internal/translator/name.go | 67 + .../internal/translator/sdk.go | 48 + .../internal/translator/sql.go | 66 + .../internal/translator/sql_test.go | 46 + .../internal/translator/time.go | 36 + .../internal/translator/translator.go | 261 + .../internal/translator/translator_test.go | 1084 +++ .../internal/udppoller/poller.go | 226 + .../internal/udppoller/poller_test.go | 487 + receiver/awsxrayreceiver/receiver.go | 138 + receiver/awsxrayreceiver/receiver_test.go | 372 + receiver/awsxrayreceiver/testdata/config.yaml | 34 + receiver/carbonreceiver/Makefile | 1 + receiver/carbonreceiver/README.md | 58 + receiver/carbonreceiver/config.go | 80 + receiver/carbonreceiver/config_test.go | 95 + receiver/carbonreceiver/doc.go | 19 + receiver/carbonreceiver/factory.go | 68 + receiver/carbonreceiver/factory_test.go | 42 + receiver/carbonreceiver/go.mod | 47 + receiver/carbonreceiver/go.sum | 295 + receiver/carbonreceiver/protocol/config.go | 91 + .../carbonreceiver/protocol/config_test.go | 78 + receiver/carbonreceiver/protocol/parser.go | 72 + .../protocol/path_parser_helper.go | 154 + .../protocol/plaintext_parser.go | 94 + .../protocol/plaintext_parser_test.go | 217 + .../carbonreceiver/protocol/regex_parser.go | 233 + .../protocol/regex_parser_test.go | 256 + receiver/carbonreceiver/receiver.go | 123 + receiver/carbonreceiver/receiver_test.go | 236 + receiver/carbonreceiver/reporter.go | 111 + receiver/carbonreceiver/reporter_test.go | 47 + receiver/carbonreceiver/testdata/config.yaml | 69 + .../transport/client/plaintext_client.go | 153 + .../carbonreceiver/transport/mock_reporter.go | 55 + receiver/carbonreceiver/transport/server.go | 75 + .../carbonreceiver/transport/server_test.go | 113 + .../carbonreceiver/transport/tcp_server.go | 220 + .../carbonreceiver/transport/udp_server.go | 129 + receiver/cloudfoundryreceiver/Makefile | 1 + receiver/cloudfoundryreceiver/README.md | 100 + receiver/cloudfoundryreceiver/config.go | 89 + receiver/cloudfoundryreceiver/config_test.go | 149 + receiver/cloudfoundryreceiver/converter.go | 69 + .../cloudfoundryreceiver/converter_test.go | 164 + receiver/cloudfoundryreceiver/doc.go | 20 + receiver/cloudfoundryreceiver/factory.go | 76 + receiver/cloudfoundryreceiver/factory_test.go | 43 + receiver/cloudfoundryreceiver/go.mod | 53 + receiver/cloudfoundryreceiver/go.sum | 386 + receiver/cloudfoundryreceiver/receiver.go | 168 + .../cloudfoundryreceiver/receiver_test.go | 65 + receiver/cloudfoundryreceiver/stream.go | 101 + receiver/cloudfoundryreceiver/stream_test.go | 97 + .../testdata/config-invalid.yaml | 28 + .../cloudfoundryreceiver/testdata/config.yaml | 30 + receiver/cloudfoundryreceiver/uaa.go | 95 + receiver/cloudfoundryreceiver/uaa_test.go | 64 + receiver/collectdreceiver/Makefile | 1 + receiver/collectdreceiver/README.md | 41 + receiver/collectdreceiver/collectd.go | 314 + receiver/collectdreceiver/collectd_test.go | 522 ++ receiver/collectdreceiver/config.go | 32 + receiver/collectdreceiver/config_test.go | 57 + receiver/collectdreceiver/doc.go | 18 + receiver/collectdreceiver/factory.go | 73 + receiver/collectdreceiver/factory_test.go | 42 + receiver/collectdreceiver/go.mod | 48 + receiver/collectdreceiver/go.sum | 330 + receiver/collectdreceiver/observability.go | 95 + receiver/collectdreceiver/receiver.go | 159 + receiver/collectdreceiver/receiver_test.go | 295 + .../collectdreceiver/testdata/collectd.json | 160 + .../collectdreceiver/testdata/config.yaml | 32 + receiver/collectdreceiver/testdata/event.json | 16 + receiver/couchbasereceiver/Makefile | 1 + receiver/couchbasereceiver/README.md | 41 + receiver/couchbasereceiver/client.go | 151 + receiver/couchbasereceiver/client_test.go | 319 + receiver/couchbasereceiver/config.go | 63 + receiver/couchbasereceiver/config_test.go | 109 + receiver/couchbasereceiver/doc.go | 17 + receiver/couchbasereceiver/documentation.md | 24 + receiver/couchbasereceiver/factory.go | 53 + receiver/couchbasereceiver/factory_test.go | 80 + receiver/couchbasereceiver/go.mod | 47 + receiver/couchbasereceiver/go.sum | 331 + .../internal/metadata/generated_metrics_v2.go | 111 + receiver/couchbasereceiver/metadata.yaml | 1 + receiver/couchbasereceiver/models.go | 86 + .../apiresponses/get_bucket_stats.json | 801 ++ .../get_cluster_bucket_info_response.json | 608 ++ .../apiresponses/get_clusters_response.json | 351 + .../couchbasereceiver/testdata/config.yaml | 19 + receiver/couchdbreceiver/Makefile | 1 + receiver/couchdbreceiver/README.md | 39 + receiver/couchdbreceiver/client.go | 115 + receiver/couchdbreceiver/client_test.go | 225 + receiver/couchdbreceiver/config.go | 61 + receiver/couchdbreceiver/config_test.go | 100 + receiver/couchdbreceiver/doc.go | 20 + receiver/couchdbreceiver/documentation.md | 42 + receiver/couchdbreceiver/factory.go | 71 + receiver/couchdbreceiver/factory_test.go | 82 + receiver/couchdbreceiver/go.mod | 53 + receiver/couchdbreceiver/go.sum | 332 + .../internal/metadata/generated_metrics_v2.go | 679 ++ receiver/couchdbreceiver/metadata.yaml | 87 + receiver/couchdbreceiver/metrics.go | 199 + receiver/couchdbreceiver/scraper.go | 84 + receiver/couchdbreceiver/scraper_test.go | 214 + receiver/couchdbreceiver/testdata/config.yaml | 19 + .../testdata/scraper/expected.json | 584 ++ .../testdata/scraper/response_2.31.json | 585 ++ .../testdata/scraper/response_3.12.json | 661 ++ receiver/dockerstatsreceiver/Makefile | 1 + receiver/dockerstatsreceiver/README.md | 60 + receiver/dockerstatsreceiver/config.go | 72 + receiver/dockerstatsreceiver/config_test.go | 92 + receiver/dockerstatsreceiver/factory.go | 63 + receiver/dockerstatsreceiver/factory_test.go | 49 + receiver/dockerstatsreceiver/go.mod | 61 + receiver/dockerstatsreceiver/go.sum | 1121 +++ .../dockerstatsreceiver/integration_test.go | 203 + receiver/dockerstatsreceiver/metrics.go | 284 + receiver/dockerstatsreceiver/metrics_test.go | 414 + receiver/dockerstatsreceiver/receiver.go | 122 + receiver/dockerstatsreceiver/receiver_test.go | 72 + .../dockerstatsreceiver/testdata/config.yaml | 30 + .../testdata/container.json | 226 + .../dockerstatsreceiver/testdata/stats.json | 200 + receiver/dotnetdiagnosticsreceiver/Makefile | 1 + receiver/dotnetdiagnosticsreceiver/README.md | 111 + receiver/dotnetdiagnosticsreceiver/config.go | 51 + .../dotnetdiagnosticsreceiver/config_test.go | 43 + .../dotnet/common.go | 27 + .../dotnet/event_header.go | 131 + .../dotnet/event_header_test.go | 57 + .../dotnet/event_parser.go | 125 + .../dotnet/event_parser_test.go | 141 + .../dotnet/ipc_parser.go | 93 + .../dotnet/ipc_parser_test.go | 76 + .../dotnet/metadata_parser.go | 215 + .../dotnet/metadata_parser_test.go | 74 + .../dotnet/metric.go | 88 + .../dotnet/nettrace_parser.go | 73 + .../dotnet/nettrace_parser_test.go | 79 + .../dotnet/parser.go | 125 + .../dotnet/parser_test.go | 150 + .../dotnet/request.go | 188 + .../dotnet/request_test.go | 84 + .../dotnet/sequence_parser.go | 62 + .../dotnet/sequence_parser_test.go | 53 + .../dotnet/serialization_type.go | 65 + .../dotnet/serialization_type_test.go | 58 + .../dotnet/stack_parser.go | 65 + .../dotnet/stack_parser_test.go | 53 + .../dotnet/trace_parser.go | 72 + .../dotnet/trace_parser_test.go | 54 + receiver/dotnetdiagnosticsreceiver/factory.go | 77 + .../dotnetdiagnosticsreceiver/factory_test.go | 60 + receiver/dotnetdiagnosticsreceiver/go.mod | 33 + receiver/dotnetdiagnosticsreceiver/go.sum | 291 + .../metrics/converter.go | 77 + .../metrics/converter_test.go | 89 + .../metrics/sender.go | 49 + .../metrics/sender_test.go | 33 + .../network/blob_writer.go | 133 + .../network/blob_writer_test.go | 94 + .../network/fake_rw.go | 182 + .../network/fake_rw_test.go | 127 + .../dotnetdiagnosticsreceiver/network/net.go | 70 + .../network/net_test.go | 83 + .../network/reader.go | 278 + .../network/reader_test.go | 304 + .../network/writer.go | 33 + .../network/writer_test.go | 43 + .../dotnetdiagnosticsreceiver/receiver.go | 109 + .../receiver_test.go | 147 + .../testdata/config.yaml | 18 + .../testdata/metric.0.json | 14 + .../testdata/metric.1.json | 14 + .../testdata/metric.10.json | 11 + .../testdata/metric.11.json | 14 + .../testdata/metric.12.json | 14 + .../testdata/metric.13.json | 14 + .../testdata/metric.14.json | 14 + .../testdata/metric.15.json | 14 + .../testdata/metric.16.json | 11 + .../testdata/metric.17.json | 14 + .../testdata/metric.18.json | 14 + .../testdata/metric.2.json | 14 + .../testdata/metric.3.json | 11 + .../testdata/metric.4.json | 11 + .../testdata/metric.5.json | 11 + .../testdata/metric.6.json | 11 + .../testdata/metric.7.json | 14 + .../testdata/metric.8.json | 11 + .../testdata/metric.9.json | 14 + .../testdata/msg.0.bin | Bin 0 -> 130 bytes .../testdata/msg.1.bin | Bin 0 -> 816 bytes .../testdata/msg.10.bin | Bin 0 -> 2980 bytes .../testdata/msg.11.bin | Bin 0 -> 2980 bytes .../testdata/msg.12.bin | Bin 0 -> 2984 bytes .../testdata/msg.13.bin | Bin 0 -> 2980 bytes .../testdata/msg.14.bin | Bin 0 -> 2980 bytes .../testdata/msg.15.bin | Bin 0 -> 54 bytes .../testdata/msg.16.bin | Bin 0 -> 160 bytes .../testdata/msg.17.bin | Bin 0 -> 2978 bytes .../testdata/msg.2.bin | Bin 0 -> 159 bytes .../testdata/msg.3.bin | Bin 0 -> 2976 bytes .../testdata/msg.4.bin | Bin 0 -> 2978 bytes .../testdata/msg.5.bin | Bin 0 -> 2979 bytes .../testdata/msg.6.bin | Bin 0 -> 2976 bytes .../testdata/msg.7.bin | Bin 0 -> 2976 bytes .../testdata/msg.8.bin | Bin 0 -> 2976 bytes .../testdata/msg.9.bin | Bin 0 -> 2977 bytes receiver/elasticsearchreceiver/Makefile | 1 + receiver/elasticsearchreceiver/README.md | 47 + receiver/elasticsearchreceiver/client.go | 167 + receiver/elasticsearchreceiver/client_test.go | 319 + receiver/elasticsearchreceiver/config.go | 96 + receiver/elasticsearchreceiver/config_test.go | 178 + receiver/elasticsearchreceiver/doc.go | 20 + .../elasticsearchreceiver/documentation.md | 68 + receiver/elasticsearchreceiver/factory.go | 86 + .../elasticsearchreceiver/factory_test.go | 79 + receiver/elasticsearchreceiver/go.mod | 53 + receiver/elasticsearchreceiver/go.sum | 337 + .../internal/metadata/emitters.go | 52 + .../internal/metadata/generated_metrics_v2.go | 2113 +++++ .../internal/mocks/elasticsearchClient.go | 62 + .../internal/model/clusterhealth.go | 29 + .../internal/model/nodestats.go | 183 + receiver/elasticsearchreceiver/metadata.yaml | 338 + receiver/elasticsearchreceiver/scraper.go | 223 + .../elasticsearchreceiver/scraper_test.go | 262 + .../testdata/config.yaml | 25 + .../expected_metrics/clusterSkip.json | 948 ++ .../testdata/expected_metrics/full.json | 1110 +++ .../testdata/expected_metrics/noNodes.json | 166 + .../testdata/sample_payloads/health.json | 17 + .../testdata/sample_payloads/nodes_linux.json | 726 ++ receiver/filelogreceiver/Makefile | 1 + receiver/filelogreceiver/README.md | 88 + receiver/filelogreceiver/doc.go | 17 + receiver/filelogreceiver/filelog.go | 78 + receiver/filelogreceiver/filelog_test.go | 326 + receiver/filelogreceiver/go.mod | 47 + receiver/filelogreceiver/go.sum | 328 + receiver/filelogreceiver/storage_test.go | 207 + receiver/filelogreceiver/testdata/config.yaml | 28 + receiver/filelogreceiver/testdata/simple.log | 3 + receiver/fluentforwardreceiver/Makefile | 1 + receiver/fluentforwardreceiver/README.md | 37 + receiver/fluentforwardreceiver/ack.go | 36 + receiver/fluentforwardreceiver/ack_test.go | 71 + receiver/fluentforwardreceiver/collector.go | 87 + receiver/fluentforwardreceiver/config.go | 27 + receiver/fluentforwardreceiver/config_test.go | 44 + receiver/fluentforwardreceiver/conversion.go | 448 + .../fluentforwardreceiver/conversion_test.go | 280 + receiver/fluentforwardreceiver/factory.go | 53 + .../fluentforwardreceiver/factory_test.go | 46 + receiver/fluentforwardreceiver/go.mod | 36 + receiver/fluentforwardreceiver/go.sum | 295 + receiver/fluentforwardreceiver/heartbeat.go | 48 + .../fluentforwardreceiver/heartbeat_test.go | 49 + .../fluentforwardreceiver/observ/metrics.go | 94 + .../observ/metrics_test.go | 25 + receiver/fluentforwardreceiver/parse_test.go | 53 + receiver/fluentforwardreceiver/receiver.go | 93 + .../fluentforwardreceiver/receiver_test.go | 427 + receiver/fluentforwardreceiver/server.go | 207 + receiver/fluentforwardreceiver/server_test.go | 127 + .../testdata/config.yaml | 15 + .../testdata/forward-event.hexdump | 12 + .../forward-packed-compressed.hexdump | 32 + .../testdata/forward-packed.hexdump | 28 + .../testdata/message-event.hexdump | 10 + receiver/fluentforwardreceiver/timeext.go | 54 + .../fluentforwardreceiver/timeext_test.go | 41 + receiver/fluentforwardreceiver/util_test.go | 47 + receiver/googlecloudpubsubreceiver/Makefile | 1 + receiver/googlecloudpubsubreceiver/README.md | 66 + receiver/googlecloudpubsubreceiver/config.go | 107 + .../googlecloudpubsubreceiver/config_test.go | 129 + receiver/googlecloudpubsubreceiver/factory.go | 129 + .../googlecloudpubsubreceiver/factory_test.go | 92 + receiver/googlecloudpubsubreceiver/go.mod | 51 + receiver/googlecloudpubsubreceiver/go.sum | 769 ++ .../internal/handler.go | 243 + .../internal/handler_test.go | 72 + .../googlecloudpubsubreceiver/receiver.go | 292 + .../receiver_test.go | 161 + .../testdata/config.yaml | 21 + .../testdata/data.go | 72 + receiver/googlecloudspannerreceiver/Makefile | 1 + receiver/googlecloudspannerreceiver/README.md | 65 + .../googlecloudspannerreceiver/cardinality.md | 80 + receiver/googlecloudspannerreceiver/config.go | 117 + .../googlecloudspannerreceiver/config_test.go | 200 + receiver/googlecloudspannerreceiver/doc.go | 15 + .../googlecloudspannerreceiver/factory.go | 71 + .../factory_test.go | 56 + receiver/googlecloudspannerreceiver/go.mod | 68 + receiver/googlecloudspannerreceiver/go.sum | 792 ++ .../internal/datasource/database.go | 61 + .../internal/datasource/database_test.go | 76 + .../internal/datasource/databaseid.go | 48 + .../internal/datasource/databaseid_test.go | 44 + .../internal/filter/itemcardinality.go | 183 + .../internal/filter/itemcardinality_test.go | 342 + .../internal/filter/nopitemcardinality.go | 57 + .../filter/nopitemcardinality_test.go | 69 + .../internal/filter/testhelpers_test.go | 150 + .../internal/filterfactory/filterbuilder.go | 150 + .../filterfactory/filterbuilder_test.go | 275 + .../filterfactory/itemfilterfactory.go | 102 + .../filterfactory/itemfilterfactory_test.go | 152 + .../filterfactory/testhelpers_test.go | 70 + .../internal/metadata/labelvalue.go | 298 + .../internal/metadata/labelvalue_test.go | 296 + .../internal/metadata/metadata_test.go | 37 + .../internal/metadata/metricdatatype.go | 50 + .../internal/metadata/metricdatatype_test.go | 50 + .../internal/metadata/metricsbuilder.go | 150 + .../internal/metadata/metricsbuilder_test.go | 363 + .../internal/metadata/metricsdatapoint.go | 125 + .../metadata/metricsdatapoint_test.go | 235 + .../internal/metadata/metricsmetadata.go | 148 + .../internal/metadata/metricsmetadata_test.go | 315 + .../internal/metadata/metricvalue.go | 157 + .../internal/metadata/metricvalue_test.go | 121 + .../internal/metadata/valuemetadata.go | 36 + .../internal/metadataconfig/metadata.yaml | 449 + .../metadataconfig/metadata_yaml_test.go | 36 + .../internal/metadataparser/label.go | 29 + .../internal/metadataparser/label_test.go | 68 + .../internal/metadataparser/metadata.go | 78 + .../internal/metadataparser/metadata_test.go | 156 + .../internal/metadataparser/metadataconfig.go | 19 + .../internal/metadataparser/metadataparser.go | 43 + .../metadataparser/metadataparser_test.go | 83 + .../internal/metadataparser/metric.go | 36 + .../internal/metadataparser/metric_test.go | 79 + .../internal/metadataparser/metrictype.go | 91 + .../metadataparser/metrictype_test.go | 122 + .../statsreader/currentstatsreader.go | 116 + .../statsreader/currentstatsreader_test.go | 107 + .../internal/statsreader/databasereader.go | 97 + .../statsreader/databasereader_test.go | 191 + .../statsreader/intervalstatsreader.go | 107 + .../statsreader/intervalstatsreader_test.go | 91 + .../internal/statsreader/projectreader.go | 69 + .../statsreader/projectreader_test.go | 122 + .../internal/statsreader/reader.go | 40 + .../internal/statsreader/statements.go | 70 + .../internal/statsreader/statements_test.go | 88 + .../statsreaders_mockedspanner_test.go | 209 + .../statsreader/timestampsgenerator.go | 68 + .../statsreader/timestampsgenerator_test.go | 120 + .../googlecloudspannerreceiver/receiver.go | 189 + .../receiver_test.go | 333 + .../testdata/config.yaml | 42 + .../testdata/metadata_invalid.yaml | 15 + .../testdata/metadata_not_yaml.yaml | 1 + .../testdata/metadata_valid.yaml | 38 + .../testdata/serviceAccount.json | 12 + receiver/hostmetricsreceiver/Makefile | 1 + receiver/hostmetricsreceiver/README.md | 127 + receiver/hostmetricsreceiver/config.go | 90 + receiver/hostmetricsreceiver/config_test.go | 123 + receiver/hostmetricsreceiver/doc.go | 16 + .../hostmetricsreceiver/example_config.yaml | 29 + receiver/hostmetricsreceiver/factory.go | 138 + receiver/hostmetricsreceiver/factory_test.go | 65 + receiver/hostmetricsreceiver/go.mod | 46 + receiver/hostmetricsreceiver/go.sum | 337 + .../hostmetrics_receiver_test.go | 415 + .../internal/perfcounters/doc.go | 19 + .../perfcounters/perfcounter_scraper.go | 203 + .../perfcounters/perfcounter_scraper_mock.go | 168 + .../perfcounters/perfcounter_scraper_test.go | 172 + .../hostmetricsreceiver/internal/scraper.go | 40 + .../internal/scraper/cpuscraper/config.go | 26 + .../scraper/cpuscraper/cpu_scraper.go | 77 + .../scraper/cpuscraper/cpu_scraper_linux.go | 48 + .../scraper/cpuscraper/cpu_scraper_others.go | 40 + .../scraper/cpuscraper/cpu_scraper_test.go | 398 + .../internal/scraper/cpuscraper/doc.go | 20 + .../scraper/cpuscraper/documentation.md | 28 + .../internal/scraper/cpuscraper/factory.go | 59 + .../scraper/cpuscraper/factory_test.go | 39 + .../internal/metadata/generated_metrics_v2.go | 272 + .../internal/scraper/cpuscraper/metadata.yaml | 30 + .../ucal/cpu_utilization_calculator.go | 92 + .../ucal/cpu_utilization_calculator_test.go | 242 + .../internal/scraper/diskscraper/config.go | 41 + .../diskscraper/disk_scraper_others.go | 159 + .../disk_scraper_others_fallback.go | 28 + .../diskscraper/disk_scraper_others_linux.go | 45 + .../diskscraper/disk_scraper_others_test.go | 69 + .../scraper/diskscraper/disk_scraper_test.go | 198 + .../diskscraper/disk_scraper_windows.go | 165 + .../diskscraper/disk_scraper_windows_test.go | 80 + .../internal/scraper/diskscraper/doc.go | 20 + .../scraper/diskscraper/documentation.md | 33 + .../internal/scraper/diskscraper/factory.go | 62 + .../scraper/diskscraper/factory_test.go | 48 + .../internal/metadata/generated_metrics_v2.go | 589 ++ .../scraper/diskscraper/metadata.yaml | 82 + .../scraper/filesystemscraper/config.go | 144 + .../internal/scraper/filesystemscraper/doc.go | 20 + .../filesystemscraper/documentation.md | 32 + .../scraper/filesystemscraper/factory.go | 64 + .../scraper/filesystemscraper/factory_test.go | 48 + .../filesystemscraper/filesystem_scraper.go | 153 + .../filesystem_scraper_others.go | 50 + .../filesystem_scraper_test.go | 340 + .../filesystem_scraper_unix.go | 65 + .../internal/metadata/generated_metrics_v2.go | 345 + .../scraper/filesystemscraper/metadata.yaml | 49 + .../internal/scraper/loadscraper/config.go | 29 + .../internal/scraper/loadscraper/doc.go | 20 + .../scraper/loadscraper/documentation.md | 27 + .../internal/scraper/loadscraper/factory.go | 60 + .../scraper/loadscraper/factory_test.go | 39 + .../internal/metadata/generated_metrics_v2.go | 297 + .../scraper/loadscraper/load_scraper.go | 87 + .../loadscraper/load_scraper_others.go | 38 + .../scraper/loadscraper/load_scraper_test.go | 152 + .../loadscraper/load_scraper_windows.go | 170 + .../loadscraper/load_scraper_windows_test.go | 125 + .../scraper/loadscraper/metadata.yaml | 27 + .../internal/scraper/memoryscraper/config.go | 26 + .../internal/scraper/memoryscraper/doc.go | 20 + .../scraper/memoryscraper/documentation.md | 27 + .../internal/scraper/memoryscraper/factory.go | 56 + .../scraper/memoryscraper/factory_test.go | 39 + .../internal/metadata/generated_metrics_v2.go | 265 + .../scraper/memoryscraper/memory_scraper.go | 79 + .../memoryscraper/memory_scraper_linux.go | 43 + .../memoryscraper/memory_scraper_others.go | 37 + .../memoryscraper/memory_scraper_test.go | 215 + .../memoryscraper/memory_scraper_windows.go | 35 + .../scraper/memoryscraper/metadata.yaml | 27 + .../internal/scraper/networkscraper/config.go | 37 + .../internal/scraper/networkscraper/doc.go | 20 + .../scraper/networkscraper/documentation.md | 33 + .../scraper/networkscraper/factory.go | 62 + .../scraper/networkscraper/factory_test.go | 48 + .../internal/metadata/generated_metrics_v2.go | 473 + .../scraper/networkscraper/metadata.yaml | 69 + .../scraper/networkscraper/network_linux.go | 33 + .../scraper/networkscraper/network_others.go | 33 + .../scraper/networkscraper/network_scraper.go | 201 + .../networkscraper/network_scraper_test.go | 190 + .../internal/scraper/pagingscraper/config.go | 28 + .../internal/scraper/pagingscraper/doc.go | 20 + .../scraper/pagingscraper/documentation.md | 32 + .../internal/scraper/pagingscraper/factory.go | 59 + .../scraper/pagingscraper/factory_test.go | 38 + .../internal/metadata/generated_metrics_v2.go | 417 + .../scraper/pagingscraper/metadata.yaml | 58 + .../scraper/pagingscraper/pagefile.go | 23 + .../scraper/pagingscraper/pagefile_linux.go | 107 + .../pagingscraper/pagefile_linux_test.go | 65 + .../scraper/pagingscraper/pagefile_others.go | 33 + .../scraper/pagingscraper/pagefile_windows.go | 100 + .../pagingscraper/paging_scraper_others.go | 136 + .../paging_scraper_others_test.go | 86 + .../pagingscraper/paging_scraper_test.go | 223 + .../pagingscraper/paging_scraper_windows.go | 143 + .../paging_scraper_windows_test.go | 147 + .../scraper/processesscraper/config.go | 28 + .../internal/scraper/processesscraper/doc.go | 20 + .../scraper/processesscraper/documentation.md | 27 + .../scraper/processesscraper/factory.go | 59 + .../scraper/processesscraper/factory_test.go | 39 + .../internal/metadata/generated_metrics_v2.go | 277 + .../scraper/processesscraper/metadata.yaml | 28 + .../processesscraper/processes_scraper.go | 112 + .../processes_scraper_fallback.go | 25 + .../processes_scraper_test.go | 233 + .../processes_scraper_unix.go | 106 + .../internal/scraper/processscraper/config.go | 45 + .../internal/scraper/processscraper/doc.go | 20 + .../scraper/processscraper/documentation.md | 41 + .../scraper/processscraper/factory.go | 67 + .../scraper/processscraper/factory_test.go | 45 + .../internal/metadata/generated_metrics_v2.go | 439 + .../scraper/processscraper/metadata.yaml | 84 + .../scraper/processscraper/process.go | 115 + .../scraper/processscraper/process_scraper.go | 204 + .../processscraper/process_scraper_linux.go | 61 + .../processscraper/process_scraper_others.go | 33 + .../processscraper/process_scraper_test.go | 553 ++ .../processscraper/process_scraper_windows.go | 63 + .../hostmetricsreceiver/internal/testutils.go | 91 + .../testdata/config-invalidscraperkey.yaml | 18 + .../testdata/config-noscrapers.yaml | 15 + .../hostmetricsreceiver/testdata/config.yaml | 36 + receiver/influxdbreceiver/Makefile | 1 + receiver/influxdbreceiver/README.md | 71 + receiver/influxdbreceiver/config.go | 26 + receiver/influxdbreceiver/factory.go | 49 + receiver/influxdbreceiver/go.mod | 45 + receiver/influxdbreceiver/go.sum | 342 + receiver/influxdbreceiver/logger.go | 34 + receiver/influxdbreceiver/receiver.go | 187 + receiver/jaegerreceiver/Makefile | 1 + receiver/jaegerreceiver/README.md | 99 + receiver/jaegerreceiver/config.go | 171 + receiver/jaegerreceiver/config_test.go | 290 + receiver/jaegerreceiver/doc.go | 16 + receiver/jaegerreceiver/errors.go | 24 + receiver/jaegerreceiver/factory.go | 159 + receiver/jaegerreceiver/factory_test.go | 262 + receiver/jaegerreceiver/go.mod | 72 + receiver/jaegerreceiver/go.sum | 418 + receiver/jaegerreceiver/jaeger_agent_test.go | 268 + .../testdata/bad_empty_config.yaml | 15 + .../testdata/bad_no_proto_config.yaml | 16 + .../testdata/bad_proto_config.yaml | 19 + .../bad_typo_default_proto_config.yaml | 20 + receiver/jaegerreceiver/testdata/ca.crt | 20 + receiver/jaegerreceiver/testdata/client.crt | 21 + receiver/jaegerreceiver/testdata/client.key | 27 + receiver/jaegerreceiver/testdata/config.yaml | 67 + receiver/jaegerreceiver/testdata/server.crt | 21 + receiver/jaegerreceiver/testdata/server.key | 27 + .../jaegerreceiver/testdata/strategies.json | 30 + receiver/jaegerreceiver/trace_receiver.go | 515 ++ .../jaegerreceiver/trace_receiver_test.go | 562 ++ receiver/jmxreceiver/Makefile | 1 + receiver/jmxreceiver/README.md | 164 + receiver/jmxreceiver/config.go | 152 + receiver/jmxreceiver/config_test.go | 230 + receiver/jmxreceiver/factory.go | 65 + receiver/jmxreceiver/factory_test.go | 79 + receiver/jmxreceiver/go.mod | 84 + receiver/jmxreceiver/go.sum | 1408 +++ receiver/jmxreceiver/integration_test.go | 278 + .../jmxreceiver/internal/subprocess/Makefile | 1 + .../internal/subprocess/integration_test.go | 298 + .../internal/subprocess/subprocess.go | 326 + .../internal/subprocess/subprocess_linux.go | 31 + .../internal/subprocess/subprocess_others.go | 24 + .../internal/subprocess/subprocess_test.go | 80 + receiver/jmxreceiver/receiver.go | 191 + receiver/jmxreceiver/receiver_test.go | 220 + .../jmxreceiver/testdata/Dockerfile.cassandra | 5 + receiver/jmxreceiver/testdata/config.yaml | 53 + receiver/jmxreceiver/testdata/script.groovy | 31 + receiver/journaldreceiver/Makefile | 1 + receiver/journaldreceiver/README.md | 30 + receiver/journaldreceiver/doc.go | 15 + receiver/journaldreceiver/go.mod | 42 + receiver/journaldreceiver/go.sum | 320 + receiver/journaldreceiver/journald.go | 79 + .../journaldreceiver/journald_nonlinux.go | 64 + receiver/journaldreceiver/journald_test.go | 83 + .../journaldreceiver/testdata/config.yaml | 19 + receiver/k8sclusterreceiver/Makefile | 1 + receiver/k8sclusterreceiver/README.md | 341 + receiver/k8sclusterreceiver/config.go | 68 + receiver/k8sclusterreceiver/config_test.go | 73 + receiver/k8sclusterreceiver/factory.go | 89 + receiver/k8sclusterreceiver/factory_test.go | 157 + receiver/k8sclusterreceiver/go.mod | 86 + receiver/k8sclusterreceiver/go.sum | 834 ++ .../collection/clusteresourcequotas.go | 124 + .../collection/clusterresourcequotas_test.go | 147 + .../internal/collection/collector.go | 221 + .../internal/collection/collector_test.go | 295 + .../internal/collection/containers.go | 193 + .../internal/collection/cronjobs.go | 75 + .../internal/collection/cronjobs_test.go | 97 + .../internal/collection/daemonsets.go | 107 + .../internal/collection/daemonsets_test.go | 75 + .../internal/collection/deployments.go | 58 + .../internal/collection/deployments_test.go | 70 + .../internal/collection/helpers_test.go | 122 + .../internal/collection/hpa.go | 107 + .../internal/collection/hpa_test.go | 78 + .../internal/collection/jobs.go | 125 + .../internal/collection/jobs_test.go | 102 + .../internal/collection/metadata.go | 163 + .../internal/collection/metadata_test.go | 237 + .../internal/collection/metadatastore.go | 44 + .../internal/collection/metricsstore.go | 112 + .../internal/collection/metricsstore_test.go | 85 + .../internal/collection/namespaces.go | 64 + .../internal/collection/namespaces_test.go | 65 + .../internal/collection/nodes.go | 165 + .../internal/collection/nodes_test.go | 254 + .../internal/collection/pods.go | 291 + .../internal/collection/pods_test.go | 430 + .../internal/collection/replica.go | 46 + .../internal/collection/replicasets.go | 59 + .../internal/collection/replicasets_test.go | 76 + .../collection/replicationcontrollers.go | 59 + .../internal/collection/resourcequotas.go | 100 + .../collection/resourcequotas_test.go | 75 + .../internal/collection/statefulsets.go | 119 + .../internal/collection/statefulsets_test.go | 109 + .../internal/testutils/metrics.go | 110 + .../internal/testutils/mock_cache_store.go | 45 + .../k8sclusterreceiver/internal/utils/kube.go | 60 + .../internal/utils/kube_test.go | 59 + .../k8sclusterreceiver/internal/utils/set.go | 24 + .../internal/utils/timeseries.go | 39 + .../internal/utils/timeseries_test.go | 39 + .../k8sclusterreceiver/mock_exporter_test.go | 54 + .../k8sclusterreceiver/mock_resources_test.go | 127 + receiver/k8sclusterreceiver/receiver.go | 131 + receiver/k8sclusterreceiver/receiver_test.go | 228 + .../k8sclusterreceiver/testdata/config.yaml | 24 + receiver/k8sclusterreceiver/watcher.go | 248 + receiver/k8sclusterreceiver/watcher_test.go | 88 + receiver/k8seventsreceiver/Makefile | 1 + receiver/k8seventsreceiver/README.md | 217 + receiver/k8seventsreceiver/config.go | 48 + receiver/k8seventsreceiver/config_test.go | 56 + receiver/k8seventsreceiver/factory.go | 63 + receiver/k8seventsreceiver/factory_test.go | 71 + receiver/k8seventsreceiver/go.mod | 68 + receiver/k8seventsreceiver/go.sum | 810 ++ .../k8seventsreceiver/k8s_event_to_logdata.go | 95 + .../k8s_event_to_logdata_test.go | 75 + receiver/k8seventsreceiver/receiver.go | 154 + receiver/k8seventsreceiver/receiver_test.go | 171 + .../k8seventsreceiver/testdata/config.yaml | 17 + receiver/kafkametricsreceiver/Makefile | 1 + receiver/kafkametricsreceiver/README.md | 84 + .../kafkametricsreceiver/broker_scraper.go | 82 + .../broker_scraper_test.go | 112 + receiver/kafkametricsreceiver/config.go | 47 + receiver/kafkametricsreceiver/config_test.go | 61 + .../kafkametricsreceiver/consumer_scraper.go | 199 + .../consumer_scraper_test.go | 223 + receiver/kafkametricsreceiver/doc.go | 20 + .../kafkametricsreceiver/documentation.md | 31 + receiver/kafkametricsreceiver/factory.go | 63 + receiver/kafkametricsreceiver/factory_test.go | 59 + receiver/kafkametricsreceiver/go.mod | 89 + receiver/kafkametricsreceiver/go.sum | 1191 +++ .../internal/metadata/generated_metrics.go | 215 + .../kafkametrics_e2e_test.go | 83 + receiver/kafkametricsreceiver/metadata.yaml | 90 + receiver/kafkametricsreceiver/receiver.go | 84 + .../kafkametricsreceiver/receiver_test.go | 93 + .../scraper_test_helper.go | 203 + .../kafkametricsreceiver/testdata/config.yaml | 28 + .../kafkametricsreceiver/topic_scraper.go | 145 + .../topic_scraper_test.go | 183 + receiver/kafkareceiver/Makefile | 1 + receiver/kafkareceiver/README.md | 72 + receiver/kafkareceiver/config.go | 79 + receiver/kafkareceiver/config_test.go | 71 + receiver/kafkareceiver/doc.go | 16 + receiver/kafkareceiver/factory.go | 174 + receiver/kafkareceiver/factory_test.go | 205 + receiver/kafkareceiver/go.mod | 77 + receiver/kafkareceiver/go.sum | 445 + receiver/kafkareceiver/jaeger_unmarshaler.go | 69 + .../kafkareceiver/jaeger_unmarshaler_test.go | 86 + receiver/kafkareceiver/kafka_receiver.go | 577 ++ receiver/kafkareceiver/kafka_receiver_test.go | 707 ++ receiver/kafkareceiver/metrics.go | 85 + receiver/kafkareceiver/metrics_test.go | 35 + receiver/kafkareceiver/pdata_unmarshaler.go | 81 + .../kafkareceiver/pdata_unmarshaler_test.go | 39 + receiver/kafkareceiver/testdata/config.yaml | 30 + receiver/kafkareceiver/unmarshaler.go | 83 + receiver/kafkareceiver/unmarshaler_test.go | 72 + receiver/kafkareceiver/zipkin_unmarshaler.go | 38 + .../kafkareceiver/zipkin_unmarshaler_test.go | 119 + receiver/kubeletstatsreceiver/Makefile | 2 + receiver/kubeletstatsreceiver/README.md | 186 + receiver/kubeletstatsreceiver/config.go | 126 + receiver/kubeletstatsreceiver/config_test.go | 258 + receiver/kubeletstatsreceiver/doc.go | 20 + .../kubeletstatsreceiver/documentation.md | 37 + receiver/kubeletstatsreceiver/factory.go | 100 + receiver/kubeletstatsreceiver/factory_test.go | 231 + receiver/kubeletstatsreceiver/go.mod | 75 + receiver/kubeletstatsreceiver/go.sum | 981 ++ .../internal/kubelet/accumulator.go | 156 + .../internal/kubelet/accumulator_test.go | 247 + .../internal/kubelet/conventions.go | 33 + .../internal/kubelet/cpu.go | 47 + .../internal/kubelet/fs.go | 33 + .../internal/kubelet/mem.go | 36 + .../internal/kubelet/metadata.go | 148 + .../internal/kubelet/metadata_provider.go | 45 + .../kubelet/metadata_provider_test.go | 80 + .../internal/kubelet/metadata_test.go | 331 + .../internal/kubelet/metrics.go | 51 + .../internal/kubelet/metrics_test.go | 169 + .../internal/kubelet/network.go | 69 + .../internal/kubelet/resource.go | 74 + .../internal/kubelet/rest_client.go | 45 + .../internal/kubelet/rest_client_test.go | 39 + .../internal/kubelet/stats_provider.go | 46 + .../internal/kubelet/utils.go | 54 + .../internal/kubelet/volume.go | 104 + .../internal/kubelet/volume_test.go | 198 + .../internal/metadata/generated_metrics.go | 311 + receiver/kubeletstatsreceiver/metadata.yaml | 143 + .../mocked_objects_test.go | 140 + receiver/kubeletstatsreceiver/scraper.go | 130 + receiver/kubeletstatsreceiver/scraper_test.go | 491 + .../kubeletstatsreceiver/testdata/config.yaml | 38 + .../kubeletstatsreceiver/testdata/pods.json | 226 + .../testdata/stats-summary.json | 1058 +++ .../testdata/testcert.crt | 19 + .../kubeletstatsreceiver/testdata/testkey.key | 27 + receiver/memcachedreceiver/Makefile | 1 + receiver/memcachedreceiver/README.md | 39 + receiver/memcachedreceiver/client.go | 50 + .../memcachedreceiver/client_mock_test.go | 50 + receiver/memcachedreceiver/config.go | 30 + receiver/memcachedreceiver/doc.go | 20 + receiver/memcachedreceiver/documentation.md | 33 + receiver/memcachedreceiver/factory.go | 73 + receiver/memcachedreceiver/factory_test.go | 55 + receiver/memcachedreceiver/go.mod | 60 + receiver/memcachedreceiver/go.sum | 1110 +++ .../memcachedreceiver/integration_test.go | 63 + .../internal/metadata/generated_metrics.go | 290 + receiver/memcachedreceiver/metadata.yaml | 128 + receiver/memcachedreceiver/scraper.go | 276 + receiver/memcachedreceiver/scraper_test.go | 46 + .../test_scraper/expected.json | 394 + .../testdata/fake_stats.json | 103 + receiver/mongodbatlasreceiver/Makefile | 1 + receiver/mongodbatlasreceiver/README.md | 33 + receiver/mongodbatlasreceiver/config.go | 35 + receiver/mongodbatlasreceiver/doc.go | 20 + .../mongodbatlasreceiver/documentation.md | 123 + receiver/mongodbatlasreceiver/factory.go | 65 + receiver/mongodbatlasreceiver/go.mod | 42 + receiver/mongodbatlasreceiver/go.sum | 292 + .../internal/metadata/generated_metrics_v2.go | 4474 +++++++++ .../internal/metadata/metric_name_mapping.go | 871 ++ .../internal/metric_conversion.go | 43 + .../internal/mongodb_atlas_client.go | 557 ++ receiver/mongodbatlasreceiver/metadata.yaml | 683 ++ receiver/mongodbatlasreceiver/receiver.go | 248 + .../mongodbatlasreceiver/receiver_test.go | 90 + receiver/mongodbreceiver/Makefile | 1 + receiver/mongodbreceiver/README.md | 59 + receiver/mongodbreceiver/client.go | 96 + receiver/mongodbreceiver/client_test.go | 272 + receiver/mongodbreceiver/config.go | 103 + receiver/mongodbreceiver/config_test.go | 177 + receiver/mongodbreceiver/doc.go | 20 + receiver/mongodbreceiver/documentation.md | 41 + receiver/mongodbreceiver/factory.go | 80 + receiver/mongodbreceiver/factory_test.go | 53 + receiver/mongodbreceiver/go.mod | 53 + receiver/mongodbreceiver/go.sum | 313 + .../internal/metadata/emitters.go | 39 + .../internal/metadata/generated_metrics_v2.go | 954 ++ receiver/mongodbreceiver/metadata.yaml | 143 + receiver/mongodbreceiver/metrics.go | 313 + receiver/mongodbreceiver/scraper.go | 171 + receiver/mongodbreceiver/scraper_test.go | 127 + receiver/mongodbreceiver/testdata/admin.json | 308 + .../mongodbreceiver/testdata/buildInfo.json | 40 + receiver/mongodbreceiver/testdata/config.yaml | 20 + .../mongodbreceiver/testdata/dbstats.json | 39 + .../testdata/scraper/expected.json | 456 + .../testdata/serverStatus.json | 563 ++ receiver/mysqlreceiver/Makefile | 1 + receiver/mysqlreceiver/README.md | 45 + receiver/mysqlreceiver/client.go | 99 + receiver/mysqlreceiver/config.go | 32 + receiver/mysqlreceiver/doc.go | 17 + receiver/mysqlreceiver/documentation.md | 55 + receiver/mysqlreceiver/factory.go | 77 + receiver/mysqlreceiver/factory_test.go | 65 + receiver/mysqlreceiver/go.mod | 68 + receiver/mysqlreceiver/go.sum | 1149 +++ receiver/mysqlreceiver/integration_test.go | 142 + .../internal/metadata/generated_metrics_v2.go | 1452 +++ receiver/mysqlreceiver/metadata.yaml | 212 + receiver/mysqlreceiver/scraper.go | 550 ++ receiver/mysqlreceiver/scraper_test.go | 86 + receiver/mysqlreceiver/testdata/config.yaml | 20 + .../testdata/integration/Dockerfile.mysql.5_7 | 14 + .../testdata/integration/Dockerfile.mysql.8_0 | 14 + .../testdata/integration/expected.5_7.json | 1053 +++ .../testdata/integration/expected.8_0.json | 1053 +++ .../testdata/integration/scripts/setup.sh | 29 + .../testdata/scraper/expected.json | 1053 +++ .../testdata/scraper/global_stats.txt | 473 + .../testdata/scraper/innodb_stats.txt | 2 + receiver/nginxreceiver/Makefile | 1 + receiver/nginxreceiver/README.md | 44 + receiver/nginxreceiver/config.go | 28 + receiver/nginxreceiver/doc.go | 20 + receiver/nginxreceiver/documentation.md | 29 + receiver/nginxreceiver/factory.go | 74 + receiver/nginxreceiver/factory_test.go | 55 + receiver/nginxreceiver/go.mod | 76 + receiver/nginxreceiver/go.sum | 1176 +++ receiver/nginxreceiver/integration_test.go | 90 + .../internal/metadata/generated_metrics_v2.go | 381 + receiver/nginxreceiver/metadata.yaml | 46 + receiver/nginxreceiver/scraper.go | 89 + receiver/nginxreceiver/scraper_test.go | 118 + .../testdata/integration/Dockerfile.nginx | 6 + .../testdata/integration/default.conf | 22 + .../testdata/integration/expected.json | 118 + .../testdata/scraper/expected.json | 118 + receiver/opencensusreceiver/Makefile | 1 + receiver/opencensusreceiver/README.md | 53 + receiver/opencensusreceiver/config.go | 51 + receiver/opencensusreceiver/config_test.go | 155 + receiver/opencensusreceiver/doc.go | 16 + receiver/opencensusreceiver/factory.go | 100 + receiver/opencensusreceiver/factory_test.go | 183 + receiver/opencensusreceiver/go.mod | 66 + receiver/opencensusreceiver/go.sum | 773 ++ .../internal/ocmetrics/doc.go | 17 + .../internal/ocmetrics/opencensus.go | 153 + .../internal/ocmetrics/opencensus_test.go | 415 + .../internal/octrace/doc.go | 17 + .../internal/octrace/observability_test.go | 144 + .../internal/octrace/opencensus.go | 148 + .../internal/octrace/opencensus_test.go | 395 + receiver/opencensusreceiver/opencensus.go | 269 + .../opencensusreceiver/opencensus_test.go | 701 ++ receiver/opencensusreceiver/options.go | 52 + .../opencensusreceiver/testdata/config.yaml | 67 + receiver/podmanreceiver/Makefile | 1 + receiver/podmanreceiver/README.md | 86 + receiver/podmanreceiver/config.go | 49 + receiver/podmanreceiver/config_test.go | 55 + receiver/podmanreceiver/factory.go | 68 + receiver/podmanreceiver/factory_test.go | 63 + receiver/podmanreceiver/go.mod | 36 + receiver/podmanreceiver/go.sum | 297 + receiver/podmanreceiver/metrics.go | 140 + receiver/podmanreceiver/metrics_test.go | 139 + receiver/podmanreceiver/podman_client.go | 140 + receiver/podmanreceiver/podman_client_test.go | 77 + receiver/podmanreceiver/podman_connection.go | 243 + .../podmanreceiver/podman_connection_test.go | 80 + receiver/podmanreceiver/receiver.go | 89 + receiver/podmanreceiver/receiver_test.go | 117 + receiver/podmanreceiver/receiver_windows.go | 33 + .../podmanreceiver/receiver_windows_test.go | 31 + receiver/podmanreceiver/testdata/config.yaml | 19 + receiver/postgresqlreceiver/Makefile | 1 + receiver/postgresqlreceiver/README.md | 60 + receiver/postgresqlreceiver/client.go | 286 + receiver/postgresqlreceiver/config.go | 80 + receiver/postgresqlreceiver/config_test.go | 113 + receiver/postgresqlreceiver/debug.test | Bin 0 -> 15253488 bytes receiver/postgresqlreceiver/doc.go | 17 + receiver/postgresqlreceiver/documentation.md | 36 + receiver/postgresqlreceiver/factory.go | 79 + receiver/postgresqlreceiver/factory_test.go | 60 + receiver/postgresqlreceiver/go.mod | 69 + receiver/postgresqlreceiver/go.sum | 1152 +++ .../postgresqlreceiver/integration_test.go | 138 + .../internal/metadata/generated_metrics_v2.go | 632 ++ receiver/postgresqlreceiver/metadata.yaml | 82 + receiver/postgresqlreceiver/scraper.go | 291 + receiver/postgresqlreceiver/scraper_test.go | 243 + .../postgresqlreceiver/testdata/config.yaml | 32 + .../integration/Dockerfile.postgresql | 7 + .../testdata/integration/expected_all_db.json | 1554 ++++ .../integration/expected_multi_db.json | 1518 ++++ .../integration/expected_single_db.json | 810 ++ .../testdata/integration/init.sql | 10 + .../testdata/scraper/multiple/expected.json | 2250 +++++ .../testdata/scraper/otel/expected.json | 810 ++ receiver/prometheusexecreceiver/Makefile | 1 + receiver/prometheusexecreceiver/README.md | 99 + receiver/prometheusexecreceiver/config.go | 37 + .../prometheusexecreceiver/config_test.go | 110 + receiver/prometheusexecreceiver/factory.go | 77 + .../prometheusexecreceiver/factory_test.go | 108 + receiver/prometheusexecreceiver/go.mod | 148 + receiver/prometheusexecreceiver/go.sum | 2068 +++++ receiver/prometheusexecreceiver/receiver.go | 311 + .../prometheusexecreceiver/receiver_test.go | 549 ++ .../subprocessmanager/config.go | 31 + .../subprocessmanager/exec_command_other.go | 37 + .../subprocessmanager/exec_command_win.go | 39 + .../subprocessmanager/manager.go | 124 + .../subprocessmanager/manager_test.go | 188 + .../testdata/test_crasher.go | 43 + .../testdata/config.yaml | 37 + .../test_prometheus_exporter.go | 50 + .../prometheusexecreceiver/testdata/metrics | 3 + receiver/prometheusreceiver/DESIGN.md | 691 ++ receiver/prometheusreceiver/Makefile | 1 + receiver/prometheusreceiver/README.md | 81 + receiver/prometheusreceiver/config.go | 240 + receiver/prometheusreceiver/config_test.go | 256 + receiver/prometheusreceiver/doc.go | 16 + receiver/prometheusreceiver/factory.go | 56 + receiver/prometheusreceiver/factory_test.go | 53 + receiver/prometheusreceiver/go.mod | 176 + receiver/prometheusreceiver/go.sum | 2102 +++++ .../internal/internal_test.go | 58 + .../prometheusreceiver/internal/logger.go | 153 + .../internal/logger_test.go | 301 + .../prometheusreceiver/internal/metadata.go | 122 + .../internal/metricsutil_pdata_test.go | 143 + .../prometheusreceiver/internal/ocastore.go | 88 + .../internal/otlp_metricfamily.go | 386 + .../internal/otlp_metricfamily_test.go | 483 + .../internal/otlp_metrics_adjuster.go | 523 ++ .../internal/otlp_metrics_adjuster_test.go | 1146 +++ .../internal/otlp_metricsbuilder.go | 207 + .../internal/otlp_metricsbuilder_test.go | 1232 +++ .../internal/otlp_transaction.go | 214 + .../internal/otlp_transaction_test.go | 136 + .../internal/prom_to_otlp.go | 60 + .../internal/prom_to_otlp_test.go | 108 + .../internal/staleness_end_to_end_test.go | 254 + receiver/prometheusreceiver/internal/util.go | 87 + .../prometheusreceiver/internal/util_test.go | 81 + .../prometheusreceiver/metrics_receiver.go | 131 + .../metrics_receiver_helper_test.go | 649 ++ .../metrics_receiver_honor_timestamp_test.go | 524 ++ .../metrics_receiver_labels_test.go | 690 ++ .../metrics_receiver_non_numerical_test.go | 407 + .../metrics_receiver_open_metrics_test.go | 153 + .../metrics_receiver_test.go | 1092 +++ .../metrics_reciever_metric_rename_test.go | 456 + .../scrapeloop-flowchart.png | Bin 0 -> 43026 bytes .../prometheusreceiver/testdata/config.yaml | 24 + .../testdata/config_env.yaml | 19 + .../testdata/config_k8s.yaml | 42 + .../testdata/config_sd.yaml | 85 + .../testdata/dummy-tls-cert-file | 0 .../testdata/dummy-tls-key-file | 0 .../prometheusreceiver/testdata/dummy.json | 1 + ...prometheus-cert-file-without-key-file.yaml | 21 + ...config-prometheus-file-sd-config-json.yaml | 21 + ...config-prometheus-file-sd-config-yaml.yaml | 21 + ...prometheus-key-file-without-cert-file.yaml | 21 + ...onfig-prometheus-kubernetes-sd-config.yaml | 24 + ...us-non-existent-auth-credentials-file.yaml | 21 + ...fig-prometheus-non-existent-cert-file.yaml | 21 + ...nfig-prometheus-non-existent-key-file.yaml | 21 + .../invalid-config-prometheus-relabel.yaml | 22 + .../invalid-config-prometheus-section.yaml | 20 + ...onfig-prometheus-unsupported-features.yaml | 43 + .../testdata/invalid-config-section.yaml | 20 + .../openmetrics/bad_blank_line/metrics | 3 + .../openmetrics/bad_clashing_names_0/metrics | 3 + .../openmetrics/bad_clashing_names_1/metrics | 3 + .../openmetrics/bad_clashing_names_2/metrics | 3 + .../openmetrics/bad_counter_values_0/metrics | 3 + .../openmetrics/bad_counter_values_1/metrics | 3 + .../openmetrics/bad_counter_values_10/metrics | 3 + .../openmetrics/bad_counter_values_11/metrics | 4 + .../openmetrics/bad_counter_values_12/metrics | 3 + .../openmetrics/bad_counter_values_13/metrics | 4 + .../openmetrics/bad_counter_values_14/metrics | 4 + .../openmetrics/bad_counter_values_15/metrics | 3 + .../openmetrics/bad_counter_values_16/metrics | 3 + .../openmetrics/bad_counter_values_17/metrics | 3 + .../openmetrics/bad_counter_values_18/metrics | 3 + .../openmetrics/bad_counter_values_19/metrics | 3 + .../openmetrics/bad_counter_values_2/metrics | 3 + .../openmetrics/bad_counter_values_3/metrics | 3 + .../openmetrics/bad_counter_values_4/metrics | 3 + .../openmetrics/bad_counter_values_5/metrics | 3 + .../openmetrics/bad_counter_values_6/metrics | 3 + .../openmetrics/bad_counter_values_7/metrics | 3 + .../openmetrics/bad_counter_values_8/metrics | 5 + .../openmetrics/bad_counter_values_9/metrics | 5 + .../bad_exemplar_timestamp_0/metrics | 3 + .../bad_exemplar_timestamp_1/metrics | 3 + .../bad_exemplar_timestamp_2/metrics | 3 + .../openmetrics/bad_exemplars_0/metrics | 3 + .../openmetrics/bad_exemplars_1/metrics | 3 + .../openmetrics/bad_exemplars_10/metrics | 3 + .../openmetrics/bad_exemplars_11/metrics | 3 + .../openmetrics/bad_exemplars_12/metrics | 3 + .../openmetrics/bad_exemplars_2/metrics | 3 + .../openmetrics/bad_exemplars_3/metrics | 3 + .../openmetrics/bad_exemplars_4/metrics | 3 + .../openmetrics/bad_exemplars_5/metrics | 3 + .../openmetrics/bad_exemplars_6/metrics | 3 + .../openmetrics/bad_exemplars_7/metrics | 3 + .../openmetrics/bad_exemplars_8/metrics | 3 + .../openmetrics/bad_exemplars_9/metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../bad_grouping_or_ordering_0/metrics | 8 + .../bad_grouping_or_ordering_1/metrics | 5 + .../bad_grouping_or_ordering_10/metrics | 4 + .../bad_grouping_or_ordering_2/metrics | 5 + .../bad_grouping_or_ordering_3/metrics | 5 + .../bad_grouping_or_ordering_4/metrics | 4 + .../bad_grouping_or_ordering_5/metrics | 4 + .../bad_grouping_or_ordering_6/metrics | 4 + .../bad_grouping_or_ordering_7/metrics | 4 + .../bad_grouping_or_ordering_8/metrics | 4 + .../bad_grouping_or_ordering_9/metrics | 4 + .../testdata/openmetrics/bad_help_0/metrics | 2 + .../testdata/openmetrics/bad_help_1/metrics | 2 + .../testdata/openmetrics/bad_help_2/metrics | 2 + .../testdata/openmetrics/bad_help_3/metrics | 2 + .../testdata/openmetrics/bad_help_4/metrics | 2 + .../openmetrics/bad_histograms_0/metrics | 3 + .../openmetrics/bad_histograms_1/metrics | 4 + .../bad_histograms_6/metrics.txt | 4 + .../openmetrics/bad_histograms_10/metrics | 5 + .../openmetrics/bad_histograms_11/metrics | 4 + .../openmetrics/bad_histograms_12/metrics | 3 + .../openmetrics/bad_histograms_2/metrics | 4 + .../openmetrics/bad_histograms_3/metrics | 6 + .../openmetrics/bad_histograms_4/metrics | 4 + .../openmetrics/bad_histograms_5/metrics | 4 + .../openmetrics/bad_histograms_6/metrics | 3 + .../openmetrics/bad_histograms_7/metrics | 5 + .../openmetrics/bad_histograms_8/metrics | 4 + .../bad_histograms_5/metrics.txt | 4 + .../openmetrics/bad_histograms_9/metrics | 5 + .../bad_info_and_stateset_values_0/metrics | 3 + .../bad_info_and_stateset_values_1/metrics | 3 + .../openmetrics/bad_invalid_labels_0/metrics | 2 + .../openmetrics/bad_invalid_labels_1/metrics | 2 + .../openmetrics/bad_invalid_labels_2/metrics | 2 + .../openmetrics/bad_invalid_labels_3/metrics | 2 + .../openmetrics/bad_invalid_labels_4/metrics | 2 + .../openmetrics/bad_invalid_labels_5/metrics | 2 + .../openmetrics/bad_invalid_labels_6/metrics | 2 + .../openmetrics/bad_invalid_labels_7/metrics | 2 + .../openmetrics/bad_invalid_labels_8/metrics | 2 + .../testdata/openmetrics/bad_metadata/metrics | 2 + .../bad_metadata_in_wrong_place_0/metrics | 4 + .../bad_metadata_in_wrong_place_1/metrics | 4 + .../bad_metadata_in_wrong_place_2/metrics | 4 + .../openmetrics/bad_metric_names_0/metrics | 2 + .../openmetrics/bad_metric_names_1/metrics | 2 + .../openmetrics/bad_metric_names_2/metrics | 2 + .../metrics | 2 + .../metrics | 2 + .../metrics | 2 + .../metrics | 2 + .../metrics | 2 + .../bad_missing_or_extra_commas_0/metrics | 2 + .../bad_missing_or_extra_commas_1/metrics | 2 + .../bad_missing_or_extra_commas_2/metrics | 2 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 3 + .../metrics | 2 + .../metrics | 2 + .../metrics | 2 + .../openmetrics/bad_missing_value_0/metrics | 2 + .../openmetrics/bad_missing_value_1/metrics | 2 + .../testdata/openmetrics/bad_no_eof/metrics | 0 .../bad_repeated_metadata_0/metrics | 3 + .../bad_repeated_metadata_1/metrics | 3 + .../bad_repeated_metadata_2/metrics | 3 + .../bad_repeated_metadata_3/metrics | 3 + .../bad_stateset_info_values_0/metrics | 3 + .../bad_stateset_info_values_1/metrics | 3 + .../bad_stateset_info_values_2/metrics | 3 + .../bad_stateset_info_values_3/metrics | 3 + .../openmetrics/bad_text_after_eof_0/metrics | 3 + .../openmetrics/bad_text_after_eof_1/metrics | 2 + .../openmetrics/bad_timestamp_0/metrics | 2 + .../openmetrics/bad_timestamp_1/metrics | 2 + .../openmetrics/bad_timestamp_2/metrics | 2 + .../openmetrics/bad_timestamp_3/metrics | 2 + .../openmetrics/bad_timestamp_4/metrics | 2 + .../openmetrics/bad_timestamp_5/metrics | 2 + .../openmetrics/bad_timestamp_6/metrics | 2 + .../openmetrics/bad_timestamp_7/metrics | 2 + .../openmetrics/bad_timestamp_8/metrics | 2 + .../testdata/openmetrics/bad_type_0/metrics | 2 + .../testdata/openmetrics/bad_type_1/metrics | 2 + .../testdata/openmetrics/bad_type_2/metrics | 2 + .../testdata/openmetrics/bad_type_3/metrics | 2 + .../testdata/openmetrics/bad_type_4/metrics | 2 + .../testdata/openmetrics/bad_type_5/metrics | 2 + .../testdata/openmetrics/bad_type_6/metrics | 2 + .../testdata/openmetrics/bad_type_7/metrics | 2 + .../testdata/openmetrics/bad_unit_0/metrics | 2 + .../testdata/openmetrics/bad_unit_1/metrics | 2 + .../testdata/openmetrics/bad_unit_2/metrics | 2 + .../testdata/openmetrics/bad_unit_3/metrics | 2 + .../testdata/openmetrics/bad_unit_4/metrics | 2 + .../testdata/openmetrics/bad_unit_5/metrics | 2 + .../testdata/openmetrics/bad_unit_6/metrics | 3 + .../testdata/openmetrics/bad_unit_7/metrics | 3 + .../testdata/openmetrics/bad_value_0/metrics | 2 + .../testdata/openmetrics/bad_value_1/metrics | 2 + .../testdata/openmetrics/bad_value_10/metrics | 2 + .../testdata/openmetrics/bad_value_11/metrics | 2 + .../testdata/openmetrics/bad_value_12/metrics | 2 + .../testdata/openmetrics/bad_value_2/metrics | 2 + .../testdata/openmetrics/bad_value_3/metrics | 2 + .../testdata/openmetrics/bad_value_4/metrics | 2 + .../testdata/openmetrics/bad_value_5/metrics | 2 + .../testdata/openmetrics/bad_value_6/metrics | 2 + .../testdata/openmetrics/bad_value_7/metrics | 2 + .../testdata/openmetrics/bad_value_8/metrics | 2 + .../testdata/openmetrics/bad_value_9/metrics | 2 + .../openmetrics/counter_exemplars/metrics | 4 + .../counter_exemplars_empty_brackets/metrics | 4 + .../testdata/openmetrics/counter_unit/metrics | 6 + .../duplicate_timestamps_0/metrics | 8 + .../duplicate_timestamps_1/metrics | 8 + .../openmetrics/empty_brackets/metrics | 4 + .../testdata/openmetrics/empty_help/metrics | 4 + .../testdata/openmetrics/empty_label/metrics | 5 + .../openmetrics/empty_metadata/metrics | 3 + .../testdata/openmetrics/escaping/metrics | 7 + .../metrics | 6 + .../testdata/openmetrics/float_gauge/metrics | 4 + .../gaugehistogram_exemplars/metrics | 6 + .../openmetrics/hash_in_label_value/metrics | 5 + .../openmetrics/help_escaping/metrics | 31 + .../openmetrics/histogram_exemplars/metrics | 6 + .../histogram_noncanonical/metrics | 17 + .../openmetrics/info_timestamps/metrics | 5 + .../openmetrics/label_escaping/metrics | 31 + .../openmetrics/labels_and_infinite/metrics | 5 + .../labels_with_curly_braces/metrics | 4 + .../leading_zeros_float_gauge/metrics | 4 + .../leading_zeros_simple_gauge/metrics | 4 + .../testdata/openmetrics/nan/metrics | 2 + .../testdata/openmetrics/nan_gauge/metrics | 4 + .../negative_bucket_gaugehistogram/metrics | 8 + .../negative_bucket_histogram/metrics | 6 + .../testdata/openmetrics/no_metadata/metrics | 2 + .../openmetrics/no_newline_after_eof/metrics | 4 + .../testdata/openmetrics/null_byte/metrics | Bin 0 -> 38 bytes .../testdata/openmetrics/roundtrip/metrics | 59 + .../openmetrics/simple_counter/metrics | 4 + .../testdata/openmetrics/simple_gauge/metrics | 4 + .../openmetrics/simple_gaugehistogram/metrics | 7 + .../openmetrics/simple_histogram/metrics | 7 + .../openmetrics/simple_stateset/metrics | 5 + .../openmetrics/simple_summary/metrics | 5 + .../openmetrics/summary_quantiles/metrics | 7 + .../testdata/openmetrics/timestamps/metrics | 11 + .../openmetrics/type_help_switched/metrics | 4 + .../openmetrics/uint64_counter/metrics | 4 + .../testdata/openmetrics/unit_gauge/metrics | 5 + .../testdata/openmetrics/untyped/metrics | 5 + .../sd-config-with-null-target-group.json | 12 + .../sd-config-with-null-target-group.yaml | 5 + receiver/rabbitmqreceiver/Makefile | 1 + receiver/rabbitmqreceiver/README.md | 43 + receiver/rabbitmqreceiver/client.go | 125 + receiver/rabbitmqreceiver/client_test.go | 189 + receiver/rabbitmqreceiver/config.go | 66 + receiver/rabbitmqreceiver/config_test.go | 109 + receiver/rabbitmqreceiver/doc.go | 17 + receiver/rabbitmqreceiver/documentation.md | 39 + receiver/rabbitmqreceiver/factory.go | 70 + receiver/rabbitmqreceiver/factory_test.go | 96 + receiver/rabbitmqreceiver/go.mod | 49 + receiver/rabbitmqreceiver/go.sum | 332 + .../internal/metadata/generated_metrics_v2.go | 526 ++ .../rabbitmqreceiver/internal/mocks/client.go | 39 + .../internal/models/models.go | 31 + receiver/rabbitmqreceiver/metadata.yaml | 70 + receiver/rabbitmqreceiver/scraper.go | 149 + receiver/rabbitmqreceiver/scraper_test.go | 158 + .../apiresponses/get_queues_response.json | 201 + .../rabbitmqreceiver/testdata/config.yaml | 19 + .../expected_metrics/metrics_golden.json | 220 + receiver/receivercreator/Makefile | 1 + receiver/receivercreator/README.md | 252 + receiver/receivercreator/config.go | 129 + receiver/receivercreator/config_expansion.go | 130 + .../receivercreator/config_expansion_test.go | 126 + receiver/receivercreator/config_test.go | 129 + receiver/receivercreator/doc.go | 16 + receiver/receivercreator/factory.go | 76 + receiver/receivercreator/factory_test.go | 44 + receiver/receivercreator/fixtures_test.go | 110 + receiver/receivercreator/go.mod | 45 + receiver/receivercreator/go.sum | 315 + receiver/receivercreator/observerhandler.go | 180 + .../receivercreator/observerhandler_test.go | 163 + receiver/receivercreator/receiver.go | 119 + receiver/receivercreator/receiver_test.go | 141 + receiver/receivercreator/receivermap.go | 56 + receiver/receivercreator/receivermap_test.go | 57 + receiver/receivercreator/resourceenhancer.go | 81 + .../receivercreator/resourceenhancer_test.go | 226 + receiver/receivercreator/rules.go | 67 + receiver/receivercreator/rules_test.go | 104 + receiver/receivercreator/runner.go | 112 + receiver/receivercreator/runner_test.go | 49 + receiver/receivercreator/testdata/config.yaml | 24 + receiver/redisreceiver/Makefile | 1 + receiver/redisreceiver/README.md | 90 + receiver/redisreceiver/client.go | 52 + receiver/redisreceiver/client_test.go | 60 + receiver/redisreceiver/config.go | 40 + receiver/redisreceiver/doc.go | 20 + receiver/redisreceiver/documentation.md | 55 + receiver/redisreceiver/factory.go | 72 + receiver/redisreceiver/go.mod | 58 + receiver/redisreceiver/go.sum | 1121 +++ receiver/redisreceiver/info.go | 37 + receiver/redisreceiver/info_test.go | 30 + .../internal/metadata/generated_metrics_v2.go | 1926 ++++ receiver/redisreceiver/keyspace.go | 64 + receiver/redisreceiver/keyspace_test.go | 45 + receiver/redisreceiver/metadata.yaml | 246 + receiver/redisreceiver/metric_functions.go | 64 + .../redisreceiver/metric_functions_test.go | 52 + receiver/redisreceiver/redis_e2e_test.go | 67 + receiver/redisreceiver/redis_scraper.go | 141 + receiver/redisreceiver/redis_scraper_test.go | 59 + receiver/redisreceiver/redis_svc.go | 54 + receiver/redisreceiver/redis_svc_test.go | 33 + receiver/redisreceiver/testdata/info.txt | 140 + receiver/riakreceiver/Makefile | 1 + receiver/riakreceiver/README.md | 36 + receiver/riakreceiver/client.go | 125 + receiver/riakreceiver/client_test.go | 149 + receiver/riakreceiver/config.go | 66 + receiver/riakreceiver/config_test.go | 109 + receiver/riakreceiver/doc.go | 17 + receiver/riakreceiver/documentation.md | 38 + receiver/riakreceiver/factory.go | 70 + receiver/riakreceiver/factory_test.go | 96 + receiver/riakreceiver/go.mod | 77 + receiver/riakreceiver/go.sum | 1165 +++ receiver/riakreceiver/integration_test.go | 90 + .../internal/metadata/generated_metrics_v2.go | 530 ++ .../riakreceiver/internal/mocks/client.go | 39 + receiver/riakreceiver/internal/model/model.go | 34 + receiver/riakreceiver/metadata.yaml | 71 + receiver/riakreceiver/scraper.go | 103 + receiver/riakreceiver/scraper_test.go | 158 + .../apiresponses/get_stats_response.json | 566 ++ receiver/riakreceiver/testdata/config.yaml | 19 + .../testdata/integration/Dockerfile.riak | 29 + .../testdata/integration/entrypoint.sh | 41 + .../testdata/integration/expected.json | 214 + .../testdata/integration/riak.conf | 1451 +++ .../testdata/scraper/expected.json | 214 + receiver/sapmreceiver/Makefile | 1 + receiver/sapmreceiver/README.md | 43 + receiver/sapmreceiver/config.go | 30 + receiver/sapmreceiver/config_test.go | 85 + receiver/sapmreceiver/doc.go | 17 + receiver/sapmreceiver/factory.go | 100 + receiver/sapmreceiver/factory_test.go | 79 + receiver/sapmreceiver/go.mod | 61 + receiver/sapmreceiver/go.sum | 1426 +++ receiver/sapmreceiver/testdata/ca.crt | 20 + receiver/sapmreceiver/testdata/client.crt | 21 + receiver/sapmreceiver/testdata/client.key | 27 + receiver/sapmreceiver/testdata/config.yaml | 34 + receiver/sapmreceiver/testdata/server.crt | 21 + receiver/sapmreceiver/testdata/server.key | 27 + receiver/sapmreceiver/trace_receiver.go | 222 + receiver/sapmreceiver/trace_receiver_test.go | 401 + receiver/signalfxreceiver/Makefile | 1 + receiver/signalfxreceiver/README.md | 65 + receiver/signalfxreceiver/config.go | 30 + receiver/signalfxreceiver/config_test.go | 77 + receiver/signalfxreceiver/doc.go | 17 + receiver/signalfxreceiver/factory.go | 143 + receiver/signalfxreceiver/factory_test.go | 107 + receiver/signalfxreceiver/go.mod | 88 + receiver/signalfxreceiver/go.sum | 442 + receiver/signalfxreceiver/receiver.go | 360 + receiver/signalfxreceiver/receiver_test.go | 868 ++ .../signalfxv2_event_to_logdata.go | 86 + .../signalfxv2_event_to_logdata_test.go | 146 + receiver/signalfxreceiver/testdata/ca.crt | 20 + receiver/signalfxreceiver/testdata/client.crt | 21 + receiver/signalfxreceiver/testdata/client.key | 27 + .../signalfxreceiver/testdata/config.yaml | 24 + receiver/signalfxreceiver/testdata/server.crt | 21 + receiver/signalfxreceiver/testdata/server.key | 27 + receiver/simpleprometheusreceiver/Makefile | 1 + receiver/simpleprometheusreceiver/README.md | 67 + receiver/simpleprometheusreceiver/config.go | 61 + .../simpleprometheusreceiver/config_test.go | 93 + .../examples/federation/README.md | 19 + .../examples/federation/docker-compose.yml | 25 + .../federation/otel-collector-config.yml | 38 + .../federation/prom-counter/Dockerfile | 12 + .../examples/federation/prom-counter/Makefile | 1 + .../examples/federation/prom-counter/go.mod | 30 + .../examples/federation/prom-counter/go.sum | 523 ++ .../examples/federation/prom-counter/main.go | 92 + .../examples/federation/prometheus.yml | 7 + receiver/simpleprometheusreceiver/factory.go | 65 + .../simpleprometheusreceiver/factory_test.go | 39 + receiver/simpleprometheusreceiver/go.mod | 148 + receiver/simpleprometheusreceiver/go.sum | 2070 +++++ receiver/simpleprometheusreceiver/receiver.go | 129 + .../simpleprometheusreceiver/receiver_test.go | 224 + .../testdata/config.yaml | 40 + receiver/skywalkingreceiver/Makefile | 1 + receiver/skywalkingreceiver/README.md | 36 + receiver/skywalkingreceiver/config.go | 94 + receiver/skywalkingreceiver/config_test.go | 68 + receiver/skywalkingreceiver/factory.go | 119 + receiver/skywalkingreceiver/factory_test.go | 163 + receiver/skywalkingreceiver/go.mod | 53 + receiver/skywalkingreceiver/go.sum | 758 ++ .../skywalkingproto_to_traces.go | 272 + .../skywalkingproto_to_traces_test.go | 169 + .../sw_dummy_clr_service.go | 30 + .../sw_dummy_event_service.go | 27 + .../sw_dummy_meter_service.go | 31 + .../sw_dummy_response_service.go | 68 + receiver/skywalkingreceiver/testdata/ca.crt | 20 + .../skywalkingreceiver/testdata/client.crt | 21 + .../skywalkingreceiver/testdata/client.key | 27 + .../skywalkingreceiver/testdata/config.yaml | 28 + .../skywalkingreceiver/testdata/server.crt | 21 + .../skywalkingreceiver/testdata/server.key | 27 + receiver/skywalkingreceiver/trace_receiver.go | 235 + .../skywalkingreceiver/trace_receiver_test.go | 183 + .../tracing_report_service.go | 71 + receiver/splunkhecreceiver/Makefile | 1 + receiver/splunkhecreceiver/README.md | 59 + receiver/splunkhecreceiver/config.go | 36 + receiver/splunkhecreceiver/config_test.go | 91 + receiver/splunkhecreceiver/doc.go | 17 + receiver/splunkhecreceiver/factory.go | 99 + receiver/splunkhecreceiver/factory_test.go | 69 + receiver/splunkhecreceiver/go.mod | 63 + receiver/splunkhecreceiver/go.sum | 342 + receiver/splunkhecreceiver/receiver.go | 433 + receiver/splunkhecreceiver/receiver_test.go | 1009 +++ .../splunkhecreceiver/splunk_to_logdata.go | 146 + .../splunk_to_logdata_test.go | 289 + .../splunkhec_to_metricdata.go | 151 + .../splunkhec_to_metricdata_test.go | 396 + receiver/splunkhecreceiver/testdata/ca.crt | 20 + .../splunkhecreceiver/testdata/client.crt | 21 + .../splunkhecreceiver/testdata/client.key | 27 + .../splunkhecreceiver/testdata/config.yaml | 30 + .../splunkhecreceiver/testdata/server.crt | 21 + .../splunkhecreceiver/testdata/server.key | 27 + receiver/statsdreceiver/Makefile | 1 + receiver/statsdreceiver/README.md | 143 + receiver/statsdreceiver/config.go | 77 + receiver/statsdreceiver/config_test.go | 134 + receiver/statsdreceiver/doc.go | 18 + receiver/statsdreceiver/factory.go | 78 + receiver/statsdreceiver/factory_test.go | 74 + receiver/statsdreceiver/go.mod | 41 + receiver/statsdreceiver/go.sum | 308 + .../protocol/metric_translator.go | 149 + .../protocol/metric_translator_test.go | 210 + receiver/statsdreceiver/protocol/parser.go | 26 + .../statsdreceiver/protocol/statsd_parser.go | 325 + .../protocol/statsd_parser_test.go | 1009 +++ receiver/statsdreceiver/receiver.go | 135 + receiver/statsdreceiver/receiver_test.go | 162 + receiver/statsdreceiver/reporter.go | 109 + receiver/statsdreceiver/reporter_test.go | 47 + receiver/statsdreceiver/testdata/config.yaml | 25 + .../statsdreceiver/transport/client/client.go | 114 + .../statsdreceiver/transport/mock_reporter.go | 55 + receiver/statsdreceiver/transport/server.go | 72 + .../statsdreceiver/transport/server_test.go | 100 + .../statsdreceiver/transport/udp_server.go | 104 + receiver/syslogreceiver/Makefile | 1 + receiver/syslogreceiver/README.md | 87 + receiver/syslogreceiver/doc.go | 15 + receiver/syslogreceiver/go.mod | 44 + receiver/syslogreceiver/go.sum | 325 + receiver/syslogreceiver/syslog.go | 77 + receiver/syslogreceiver/syslog_test.go | 162 + receiver/syslogreceiver/testdata/config.yaml | 21 + receiver/tcplogreceiver/Makefile | 1 + receiver/tcplogreceiver/README.md | 77 + receiver/tcplogreceiver/doc.go | 15 + receiver/tcplogreceiver/go.mod | 43 + receiver/tcplogreceiver/go.sum | 322 + receiver/tcplogreceiver/tcp.go | 76 + receiver/tcplogreceiver/tcp_test.go | 123 + receiver/tcplogreceiver/testdata/config.yaml | 18 + receiver/udplogreceiver/Makefile | 1 + receiver/udplogreceiver/README.md | 66 + receiver/udplogreceiver/doc.go | 15 + receiver/udplogreceiver/go.mod | 42 + receiver/udplogreceiver/go.sum | 320 + receiver/udplogreceiver/testdata/config.yaml | 16 + receiver/udplogreceiver/udp.go | 76 + receiver/udplogreceiver/udp_test.go | 125 + receiver/wavefrontreceiver/Makefile | 1 + receiver/wavefrontreceiver/README.md | 53 + receiver/wavefrontreceiver/config.go | 35 + receiver/wavefrontreceiver/config_test.go | 57 + receiver/wavefrontreceiver/factory.go | 85 + receiver/wavefrontreceiver/factory_test.go | 42 + receiver/wavefrontreceiver/go.mod | 48 + receiver/wavefrontreceiver/go.sum | 292 + receiver/wavefrontreceiver/receiver_test.go | 153 + .../wavefrontreceiver/testdata/config.yaml | 25 + .../wavefrontreceiver/wavefront_parser.go | 242 + .../wavefront_parser_test.go | 337 + receiver/windowsperfcountersreceiver/Makefile | 1 + .../windowsperfcountersreceiver/README.md | 167 + .../windowsperfcountersreceiver/config.go | 117 + .../config_test.go | 278 + receiver/windowsperfcountersreceiver/doc.go | 21 + .../example_config.yaml | 32 + .../windowsperfcountersreceiver/factory.go | 46 + .../factory_others.go | 37 + .../factory_others_test.go | 51 + .../factory_test.go | 117 + .../factory_windows.go | 55 + .../factory_windows_test.go | 52 + receiver/windowsperfcountersreceiver/go.mod | 39 + receiver/windowsperfcountersreceiver/go.sum | 286 + .../testdata/config-allerrors.yaml | 20 + .../testdata/config-emptyinstance.yaml | 26 + .../config-negative-collection-interval.yaml | 26 + .../testdata/config-nocounters.yaml | 22 + .../testdata/config-nometrics.yaml | 19 + .../testdata/config-nometricspecified.yaml | 24 + .../testdata/config-noobjectname.yaml | 24 + .../testdata/config-noperfcounters.yaml | 19 + .../testdata/config-summetric.yaml | 26 + .../config-unspecifiedmetrictype.yaml | 24 + .../testdata/config.yaml | 47 + .../testdata/scraper/no_metric_def.json | 25 + .../testdata/scraper/standard.json | 165 + .../testdata/scraper/sum_metric.json | 28 + .../windowsperfcounters_scraper.go | 153 + .../windowsperfcounters_scraper_test.go | 172 + receiver/zipkinreceiver/Makefile | 1 + receiver/zipkinreceiver/README.md | 29 + receiver/zipkinreceiver/config.go | 37 + receiver/zipkinreceiver/config_test.go | 63 + receiver/zipkinreceiver/doc.go | 16 + receiver/zipkinreceiver/factory.go | 63 + receiver/zipkinreceiver/factory_test.go | 51 + receiver/zipkinreceiver/go.mod | 58 + receiver/zipkinreceiver/go.sum | 416 + receiver/zipkinreceiver/proto_parse_test.go | 183 + receiver/zipkinreceiver/testdata/config.yaml | 20 + receiver/zipkinreceiver/testdata/sample1.json | 288 + receiver/zipkinreceiver/testdata/sample2.json | 32 + receiver/zipkinreceiver/trace_receiver.go | 268 + .../zipkinreceiver/trace_receiver_test.go | 466 + receiver/zookeeperreceiver/Makefile | 1 + receiver/zookeeperreceiver/README.md | 20 + receiver/zookeeperreceiver/config.go | 33 + receiver/zookeeperreceiver/doc.go | 20 + receiver/zookeeperreceiver/documentation.md | 48 + receiver/zookeeperreceiver/factory.go | 87 + receiver/zookeeperreceiver/factory_test.go | 86 + receiver/zookeeperreceiver/go.mod | 60 + receiver/zookeeperreceiver/go.sum | 1105 +++ .../internal/metadata/generated_metrics_v2.go | 1092 +++ receiver/zookeeperreceiver/metadata.yaml | 137 + receiver/zookeeperreceiver/metrics.go | 138 + receiver/zookeeperreceiver/scraper.go | 186 + receiver/zookeeperreceiver/scraper_test.go | 299 + .../zookeeperreceiver/testdata/mntr-3.4.14 | 16 + .../zookeeperreceiver/testdata/mntr-3.5.5 | 21 + .../testdata/mntr-unexpected_line_format | 2 + .../testdata/mntr-unexpected_value_type | 2 + .../testdata/scraper/correctness-v3.4.14.json | 245 + .../testdata/scraper/correctness-v3.5.5.json | 280 + .../testdata/scraper/disable-watches.json | 230 + .../scraper/error-closing-connection.json | 245 + .../error-setting-connection-deadline.json | 245 + receiver/zookeeperreceiver/zk_e2e_test.go | 107 + results/TESTRESULTS.md | 0 testbed/CCRepo_result.png | Bin 0 -> 2052738 bytes testbed/Makefile | 37 + testbed/README.md | 135 + testbed/correctness_result.png | Bin 0 -> 2161669 bytes testbed/correctnesstests/.gitignore | 2 + .../metrics/correctness_test_case.go | 109 + testbed/correctnesstests/metrics/doc.go | 35 + .../correctnesstests/metrics/metric_diff.go | 252 + .../metrics/metric_diff_test.go | 83 + .../correctnesstests/metrics/metric_index.go | 52 + .../metrics/metric_supplier.go | 37 + .../metrics/metrics_correctness_test.go | 115 + .../metrics/metrics_test_harness.go | 112 + testbed/correctnesstests/metrics/results.go | 73 + .../correctnesstests/metrics/results_dir.go | 41 + .../generated_pict_pairs_metrics_pipeline.txt | 2 + .../testdata/pict_input_metrics_pipeline.txt | 2 + testbed/correctnesstests/traces/.gitignore | 2 + .../traces/correctness_test.go | 105 + .../generated_pict_pairs_traces_pipeline.txt | 17 + .../testdata/pict_input_traces_pipeline.txt | 2 + testbed/correctnesstests/utils.go | 177 + testbed/datareceivers/carbon.go | 83 + testbed/datareceivers/jaeger.go | 74 + .../datareceivers/mockawsxraydatareceiver.go | 99 + testbed/datareceivers/opencensus.go | 79 + testbed/datareceivers/prometheus.go | 87 + testbed/datareceivers/sapm.go | 81 + testbed/datareceivers/signalfx.go | 80 + testbed/datareceivers/splunk.go | 79 + testbed/datareceivers/zipkin.go | 71 + testbed/datasenders/carbon.go | 82 + testbed/datasenders/fluent.go | 176 + testbed/datasenders/fluentbit.go | 168 + testbed/datasenders/jaeger.go | 80 + testbed/datasenders/k8s.go | 330 + testbed/datasenders/opencensus.go | 119 + testbed/datasenders/prometheus.go | 78 + testbed/datasenders/sapm.go | 81 + testbed/datasenders/signalfx.go | 82 + testbed/datasenders/stanza.go | 161 + testbed/datasenders/syslog.go | 140 + testbed/datasenders/tcpudp.go | 138 + testbed/datasenders/zipkin.go | 74 + testbed/e2e_diagram.jpeg | Bin 0 -> 53309 bytes testbed/go.mod | 283 + testbed/go.sum | 2395 +++++ .../mockawsxrayreceiver/Makefile | 1 + .../mockawsxrayreceiver/config.go | 32 + .../mockawsxrayreceiver/factory.go | 60 + .../mockawsxrayreceiver/go.mod | 28 + .../mockawsxrayreceiver/go.sum | 268 + .../mockawsxrayreceiver/server.crt | 20 + .../mockawsxrayreceiver/server.key | 28 + .../mockawsxrayreceiver/trace_receiver.go | 159 + testbed/runtests.sh | 25 + testbed/stabilitytests/.gitignore | 1 + testbed/stabilitytests/metric_test.go | 88 + testbed/stabilitytests/trace_test.go | 127 + testbed/testbed/.gitignore | 1 + testbed/testbed/child_process_collector.go | 471 + testbed/testbed/components.go | 82 + testbed/testbed/data_providers.go | 314 + testbed/testbed/data_providers_test.go | 39 + testbed/testbed/in_process_collector.go | 146 + testbed/testbed/in_process_collector_test.go | 68 + testbed/testbed/load_generator.go | 239 + testbed/testbed/mock_backend.go | 251 + testbed/testbed/mock_backend_test.go | 101 + testbed/testbed/options.go | 75 + testbed/testbed/otelcol_runner.go | 56 + testbed/testbed/receivers.go | 176 + testbed/testbed/results.go | 219 + testbed/testbed/senders.go | 365 + testbed/testbed/test_bed.go | 90 + testbed/testbed/test_case.go | 330 + testbed/testbed/utils.go | 25 + testbed/testbed/validator.go | 534 ++ testbed/tests/.gitignore | 2 + testbed/tests/e2e_test.go | 127 + testbed/tests/log_test.go | 186 + testbed/tests/metric_test.go | 158 + testbed/tests/resource_processor_test.go | 181 + testbed/tests/scenarios.go | 328 + testbed/tests/testdata/agent-config.yaml | 27 + testbed/tests/testdata/k8s-metrics.json | 75 + testbed/tests/testdata/memory-limiter.yaml | 26 + testbed/tests/trace_test.go | 483 + tracegen/Dockerfile | 19 + tracegen/Makefile | 1 + tracegen/README.md | 48 + tracegen/go.mod | 37 + tracegen/go.sum | 502 ++ tracegen/internal/tracegen/config.go | 121 + tracegen/internal/tracegen/worker.go | 91 + tracegen/internal/tracegen/worker_test.go | 120 + tracegen/main.go | 107 + versions.yaml | 193 + 3986 files changed, 575560 insertions(+) create mode 100644 .codecov.yml create mode 100644 .gitattributes create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/new_component.md create mode 100644 .github/auto_assign.yml create mode 100644 .github/dependabot.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/auto-assign-owners.yml create mode 100644 .github/workflows/build-and-test-windows.yml create mode 100644 .github/workflows/build-and-test.yml create mode 100644 .github/workflows/changelog.yml create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/load-tests.yml create mode 100644 .github/workflows/prometheus-compliance-tests.yml create mode 100755 .github/workflows/scripts/check-collector-module-version.sh create mode 100755 .github/workflows/scripts/set_release_tag.sh create mode 100755 .github/workflows/scripts/setup_e2e_tests.sh create mode 100755 .github/workflows/scripts/setup_stability_tests.sh create mode 100755 .github/workflows/scripts/verify-dist-files-exist.sh create mode 100644 .github/workflows/stability-tests.yml create mode 100644 .github/workflows/stale-pr.yaml create mode 100644 .github/workflows/tracegen.yml create mode 100644 .gitignore create mode 100644 .golangci.yml create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 Makefile create mode 100644 Makefile.Common create mode 100644 README.md create mode 100644 cmd/configschema/Makefile create mode 100644 cmd/configschema/README.md create mode 100644 cmd/configschema/comments.go create mode 100644 cmd/configschema/comments_test.go create mode 100644 cmd/configschema/common_test.go create mode 100644 cmd/configschema/configs.go create mode 100644 cmd/configschema/configs_test.go create mode 100644 cmd/configschema/docsgen/README.md create mode 100644 cmd/configschema/docsgen/docsgen/cli.go create mode 100644 cmd/configschema/docsgen/docsgen/cli_test.go create mode 100644 cmd/configschema/docsgen/docsgen/render.go create mode 100644 cmd/configschema/docsgen/docsgen/template.go create mode 100644 cmd/configschema/docsgen/docsgen/template_test.go create mode 100644 cmd/configschema/docsgen/docsgen/testdata/otlp-receiver.json create mode 100644 cmd/configschema/docsgen/docsgen/testdata/test.tmpl create mode 100644 cmd/configschema/docsgen/main.go create mode 100644 cmd/configschema/fields.go create mode 100644 cmd/configschema/fields_test.go create mode 100644 cmd/configschema/go.mod create mode 100644 cmd/configschema/go.sum create mode 100644 cmd/configschema/resolver.go create mode 100644 cmd/configschema/resolver_test.go create mode 100644 cmd/mdatagen/Makefile create mode 100644 cmd/mdatagen/README.md create mode 100644 cmd/mdatagen/documentation.tmpl create mode 100644 cmd/mdatagen/go.mod create mode 100644 cmd/mdatagen/go.sum create mode 100644 cmd/mdatagen/lint.go create mode 100644 cmd/mdatagen/lint_test.go create mode 100644 cmd/mdatagen/loader.go create mode 100644 cmd/mdatagen/loader_test.go create mode 100644 cmd/mdatagen/main.go create mode 100644 cmd/mdatagen/main_test.go create mode 100644 cmd/mdatagen/metric-metadata.yaml create mode 100644 cmd/mdatagen/metricdata.go create mode 100644 cmd/mdatagen/metricdata_test.go create mode 100644 cmd/mdatagen/metrics.tmpl create mode 100644 cmd/mdatagen/metrics_v2.tmpl create mode 100644 cmd/mdatagen/testdata/all_options.yaml create mode 100644 cmd/mdatagen/testdata/documentation_v1.md create mode 100644 cmd/mdatagen/testdata/documentation_v2.md create mode 100644 cmd/mdatagen/testdata/no_enabled.yaml create mode 100644 cmd/mdatagen/testdata/no_metric_type.yaml create mode 100644 cmd/mdatagen/testdata/no_value_type.yaml create mode 100644 cmd/mdatagen/testdata/two_metric_types.yaml create mode 100644 cmd/mdatagen/testdata/unknown_metric_attribute.yaml create mode 100644 cmd/mdatagen/third_party/golint/LICENSE create mode 100644 cmd/mdatagen/third_party/golint/golint.go create mode 100644 cmd/otelcontribcol/Dockerfile create mode 100644 cmd/otelcontribcol/main.go create mode 100644 cmd/otelcontribcol/main_others.go create mode 100644 cmd/otelcontribcol/main_windows.go create mode 100644 examples/demo/.env create mode 100644 examples/demo/README.md create mode 100644 examples/demo/client/Dockerfile create mode 100644 examples/demo/client/Makefile create mode 100644 examples/demo/client/go.mod create mode 100644 examples/demo/client/go.sum create mode 100644 examples/demo/client/main.go create mode 100644 examples/demo/docker-compose.yaml create mode 100644 examples/demo/otel-collector-config.yaml create mode 100644 examples/demo/prometheus.yaml create mode 100644 examples/demo/server/Dockerfile create mode 100644 examples/demo/server/Makefile create mode 100644 examples/demo/server/go.mod create mode 100644 examples/demo/server/go.sum create mode 100644 examples/demo/server/main.go create mode 100644 examples/kubernetes/README.md create mode 100644 examples/kubernetes/docker-compose.yml create mode 100644 examples/kubernetes/otel-collector-config.yml create mode 100644 examples/kubernetes/otel-collector.yaml create mode 100644 examples/kubernetes/varlogpods/containerd_logs-0_000011112222333344445555666677778888/logs/0.log create mode 100644 examples/kubernetes/varlogpods/crio_logs-0_111122223333444455556666777788889999/logs/0.log create mode 100644 examples/kubernetes/varlogpods/docker_logs-0_222233334444555566667777888899990000/logs/0.log create mode 100644 examples/kubernetes/varlogpods/otel_otel_888877776666555544443333222211110000/otel-collector/0.log create mode 100644 examples/tracegen/README.md create mode 100644 examples/tracegen/docker-compose.yml create mode 100644 examples/tracegen/otel-collector-config.yml create mode 100644 examples/tracing/Dockerfile create mode 100644 examples/tracing/README.md create mode 100644 examples/tracing/docker-compose.yml create mode 100644 examples/tracing/otel-collector-config.yml create mode 100644 exporter/alibabacloudlogserviceexporter/Makefile create mode 100644 exporter/alibabacloudlogserviceexporter/README.md create mode 100644 exporter/alibabacloudlogserviceexporter/config.go create mode 100644 exporter/alibabacloudlogserviceexporter/config_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/example/config.yaml create mode 100644 exporter/alibabacloudlogserviceexporter/factory.go create mode 100644 exporter/alibabacloudlogserviceexporter/go.mod create mode 100644 exporter/alibabacloudlogserviceexporter/go.sum create mode 100644 exporter/alibabacloudlogserviceexporter/logs_exporter.go create mode 100644 exporter/alibabacloudlogserviceexporter/logs_exporter_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/logsdata_to_logservice.go create mode 100644 exporter/alibabacloudlogserviceexporter/logsdata_to_logservice_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/metrics_exporter.go create mode 100644 exporter/alibabacloudlogserviceexporter/metrics_exporter_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/metricsdata_to_logservice.go create mode 100644 exporter/alibabacloudlogserviceexporter/metricsdata_to_logservice_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/sanitize.go create mode 100644 exporter/alibabacloudlogserviceexporter/sanitize_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/testdata/config.yaml create mode 100644 exporter/alibabacloudlogserviceexporter/testdata/logservice_log_data.json create mode 100644 exporter/alibabacloudlogserviceexporter/testdata/logservice_metric_data.json create mode 100644 exporter/alibabacloudlogserviceexporter/testdata/logservice_trace_data.json create mode 100644 exporter/alibabacloudlogserviceexporter/trace_exporter.go create mode 100644 exporter/alibabacloudlogserviceexporter/trace_exporter_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/tracedata_to_logservice.go create mode 100644 exporter/alibabacloudlogserviceexporter/tracedata_to_logservice_test.go create mode 100644 exporter/alibabacloudlogserviceexporter/uploader.go create mode 100644 exporter/awscloudwatchlogsexporter/Makefile create mode 100644 exporter/awscloudwatchlogsexporter/README.md create mode 100644 exporter/awscloudwatchlogsexporter/config.go create mode 100644 exporter/awscloudwatchlogsexporter/config_test.go create mode 100644 exporter/awscloudwatchlogsexporter/exporter.go create mode 100644 exporter/awscloudwatchlogsexporter/exporter_test.go create mode 100644 exporter/awscloudwatchlogsexporter/factory.go create mode 100644 exporter/awscloudwatchlogsexporter/factory_test.go create mode 100644 exporter/awscloudwatchlogsexporter/go.mod create mode 100644 exporter/awscloudwatchlogsexporter/go.sum create mode 100644 exporter/awscloudwatchlogsexporter/testdata/config.yaml create mode 100644 exporter/awscloudwatchlogsexporter/testdata/invalid_queue_setting.yaml create mode 100644 exporter/awscloudwatchlogsexporter/testdata/invalid_queue_size.yaml create mode 100644 exporter/awscloudwatchlogsexporter/testdata/missing_required_field_1_config.yaml create mode 100644 exporter/awscloudwatchlogsexporter/testdata/missing_required_field_2_config.yaml create mode 100644 exporter/awsemfexporter/Makefile create mode 100644 exporter/awsemfexporter/README.md create mode 100644 exporter/awsemfexporter/config.go create mode 100644 exporter/awsemfexporter/config_test.go create mode 100644 exporter/awsemfexporter/datapoint.go create mode 100644 exporter/awsemfexporter/datapoint_test.go create mode 100644 exporter/awsemfexporter/doc.go create mode 100644 exporter/awsemfexporter/emf_exporter.go create mode 100644 exporter/awsemfexporter/emf_exporter_test.go create mode 100644 exporter/awsemfexporter/factory.go create mode 100644 exporter/awsemfexporter/factory_test.go create mode 100644 exporter/awsemfexporter/go.mod create mode 100644 exporter/awsemfexporter/go.sum create mode 100644 exporter/awsemfexporter/grouped_metric.go create mode 100644 exporter/awsemfexporter/grouped_metric_test.go create mode 100644 exporter/awsemfexporter/metric_declaration.go create mode 100644 exporter/awsemfexporter/metric_declaration_test.go create mode 100644 exporter/awsemfexporter/metric_translator.go create mode 100644 exporter/awsemfexporter/metric_translator_test.go create mode 100644 exporter/awsemfexporter/testdata/config.yaml create mode 100644 exporter/awsemfexporter/testdata/mockcgroup create mode 100644 exporter/awsemfexporter/testdata/mockcgroupWithErr create mode 100644 exporter/awsemfexporter/testdata/testTranslateCWMetricToEMF.json create mode 100644 exporter/awsemfexporter/util.go create mode 100644 exporter/awsemfexporter/util_test.go create mode 100644 exporter/awskinesisexporter/Makefile create mode 100644 exporter/awskinesisexporter/README.md create mode 100644 exporter/awskinesisexporter/config.go create mode 100644 exporter/awskinesisexporter/config_test.go create mode 100644 exporter/awskinesisexporter/exporter.go create mode 100644 exporter/awskinesisexporter/factory.go create mode 100644 exporter/awskinesisexporter/go.mod create mode 100644 exporter/awskinesisexporter/go.sum create mode 100644 exporter/awskinesisexporter/internal/batch/batch.go create mode 100644 exporter/awskinesisexporter/internal/batch/batch_test.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode_jaeger.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode_jaeger_test.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode_marshaler.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode_marshaler_test.go create mode 100644 exporter/awskinesisexporter/internal/batch/encode_unsupported.go create mode 100644 exporter/awskinesisexporter/internal/batch/encoder_test.go create mode 100644 exporter/awskinesisexporter/internal/compress/compresser.go create mode 100644 exporter/awskinesisexporter/internal/compress/compresser_test.go create mode 100644 exporter/awskinesisexporter/internal/compress/noop_compression.go create mode 100644 exporter/awskinesisexporter/internal/key/key.go create mode 100644 exporter/awskinesisexporter/internal/key/key_test.go create mode 100644 exporter/awskinesisexporter/internal/producer/batcher.go create mode 100644 exporter/awskinesisexporter/internal/producer/batcher_bench_test.go create mode 100644 exporter/awskinesisexporter/internal/producer/batcher_options.go create mode 100644 exporter/awskinesisexporter/internal/producer/batcher_test.go create mode 100644 exporter/awskinesisexporter/internal/producer/interface.go create mode 100644 exporter/awskinesisexporter/testdata/config.yaml create mode 100644 exporter/awskinesisexporter/testdata/default.yaml create mode 100644 exporter/awsprometheusremotewriteexporter/Makefile create mode 100644 exporter/awsprometheusremotewriteexporter/README.md create mode 100644 exporter/awsprometheusremotewriteexporter/auth.go create mode 100644 exporter/awsprometheusremotewriteexporter/auth_test.go create mode 100644 exporter/awsprometheusremotewriteexporter/config.go create mode 100644 exporter/awsprometheusremotewriteexporter/config_test.go create mode 100644 exporter/awsprometheusremotewriteexporter/factory.go create mode 100644 exporter/awsprometheusremotewriteexporter/factory_test.go create mode 100644 exporter/awsprometheusremotewriteexporter/go.mod create mode 100644 exporter/awsprometheusremotewriteexporter/go.sum create mode 100644 exporter/awsprometheusremotewriteexporter/testdata/config.yaml create mode 100644 exporter/awsxrayexporter/Makefile create mode 100644 exporter/awsxrayexporter/README.md create mode 100644 exporter/awsxrayexporter/awsxray.go create mode 100644 exporter/awsxrayexporter/awsxray_test.go create mode 100644 exporter/awsxrayexporter/config.go create mode 100644 exporter/awsxrayexporter/config_test.go create mode 100644 exporter/awsxrayexporter/doc.go create mode 100644 exporter/awsxrayexporter/factory.go create mode 100644 exporter/awsxrayexporter/factory_test.go create mode 100644 exporter/awsxrayexporter/go.mod create mode 100644 exporter/awsxrayexporter/go.sum create mode 100644 exporter/awsxrayexporter/internal/translator/aws.go create mode 100644 exporter/awsxrayexporter/internal/translator/aws_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/cause.go create mode 100644 exporter/awsxrayexporter/internal/translator/cause_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/http.go create mode 100644 exporter/awsxrayexporter/internal/translator/http_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/segment.go create mode 100644 exporter/awsxrayexporter/internal/translator/segment_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/service.go create mode 100644 exporter/awsxrayexporter/internal/translator/service_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/sql.go create mode 100644 exporter/awsxrayexporter/internal/translator/sql_test.go create mode 100644 exporter/awsxrayexporter/internal/translator/writer_pool.go create mode 100644 exporter/awsxrayexporter/internal/translator/writer_pool_test.go create mode 100644 exporter/awsxrayexporter/testdata/config.yaml create mode 100644 exporter/awsxrayexporter/xray_client.go create mode 100644 exporter/awsxrayexporter/xray_client_test.go create mode 100644 exporter/azuremonitorexporter/Makefile create mode 100644 exporter/azuremonitorexporter/README.md create mode 100644 exporter/azuremonitorexporter/channels.go create mode 100644 exporter/azuremonitorexporter/config.go create mode 100644 exporter/azuremonitorexporter/config_test.go create mode 100644 exporter/azuremonitorexporter/conventions.go create mode 100644 exporter/azuremonitorexporter/conventions_test.go create mode 100644 exporter/azuremonitorexporter/factory.go create mode 100644 exporter/azuremonitorexporter/factory_test.go create mode 100644 exporter/azuremonitorexporter/go.mod create mode 100644 exporter/azuremonitorexporter/go.sum create mode 100644 exporter/azuremonitorexporter/log_to_envelope.go create mode 100644 exporter/azuremonitorexporter/logexporter.go create mode 100644 exporter/azuremonitorexporter/logexporter_test.go create mode 100644 exporter/azuremonitorexporter/mock_transportChannel.go create mode 100644 exporter/azuremonitorexporter/testdata/config.yaml create mode 100644 exporter/azuremonitorexporter/time_utils.go create mode 100644 exporter/azuremonitorexporter/time_utils_test.go create mode 100644 exporter/azuremonitorexporter/trace_to_envelope.go create mode 100644 exporter/azuremonitorexporter/trace_to_envelope_test.go create mode 100644 exporter/azuremonitorexporter/traceexporter.go create mode 100644 exporter/azuremonitorexporter/traceexporter_test.go create mode 100644 exporter/azuremonitorexporter/traceiteration.go create mode 100644 exporter/azuremonitorexporter/traceiteration_test.go create mode 100644 exporter/carbonexporter/Makefile create mode 100644 exporter/carbonexporter/README.md create mode 100644 exporter/carbonexporter/config.go create mode 100644 exporter/carbonexporter/config_test.go create mode 100644 exporter/carbonexporter/doc.go create mode 100644 exporter/carbonexporter/exporter.go create mode 100644 exporter/carbonexporter/exporter_test.go create mode 100644 exporter/carbonexporter/factory.go create mode 100644 exporter/carbonexporter/factory_test.go create mode 100644 exporter/carbonexporter/go.mod create mode 100644 exporter/carbonexporter/go.sum create mode 100644 exporter/carbonexporter/metricdata_to_plaintext.go create mode 100644 exporter/carbonexporter/metricdata_to_plaintext_test.go create mode 100644 exporter/carbonexporter/testdata/config.yaml create mode 100644 exporter/clickhouseexporter/Makefile create mode 100644 exporter/clickhouseexporter/README.md create mode 100644 exporter/clickhouseexporter/config.go create mode 100644 exporter/clickhouseexporter/config_test.go create mode 100644 exporter/clickhouseexporter/example/Dockerfile create mode 100644 exporter/clickhouseexporter/example/datasource.yaml create mode 100644 exporter/clickhouseexporter/example/docker-compose.yml create mode 100644 exporter/clickhouseexporter/example/grafana.ini create mode 100644 exporter/clickhouseexporter/example/otel-collector-config.yml create mode 100644 exporter/clickhouseexporter/exporter.go create mode 100644 exporter/clickhouseexporter/exporter_test.go create mode 100644 exporter/clickhouseexporter/factory.go create mode 100644 exporter/clickhouseexporter/factory_test.go create mode 100644 exporter/clickhouseexporter/go.mod create mode 100644 exporter/clickhouseexporter/go.sum create mode 100644 exporter/clickhouseexporter/testdata/config.yaml create mode 100644 exporter/coralogixexporter/Makefile create mode 100644 exporter/coralogixexporter/README.md create mode 100644 exporter/coralogixexporter/client.go create mode 100644 exporter/coralogixexporter/config.go create mode 100644 exporter/coralogixexporter/config_test.go create mode 100644 exporter/coralogixexporter/example/config-example-1.yaml create mode 100644 exporter/coralogixexporter/example/config.yaml create mode 100644 exporter/coralogixexporter/exporter.go create mode 100644 exporter/coralogixexporter/factory.go create mode 100644 exporter/coralogixexporter/go.mod create mode 100644 exporter/coralogixexporter/go.sum create mode 100644 exporter/datadogexporter/Makefile create mode 100644 exporter/datadogexporter/README.md create mode 100644 exporter/datadogexporter/config/config.go create mode 100644 exporter/datadogexporter/config/config_test.go create mode 100644 exporter/datadogexporter/config/warn_envvars.go create mode 100644 exporter/datadogexporter/config/warning_deprecated.go create mode 100644 exporter/datadogexporter/config/warning_deprecated_test.go create mode 100644 exporter/datadogexporter/denylister.go create mode 100644 exporter/datadogexporter/denylister_test.go create mode 100644 exporter/datadogexporter/example/config.yaml create mode 100644 exporter/datadogexporter/example/example_custom_sampler/example_custom_sampler.go.example create mode 100644 exporter/datadogexporter/example/example_k8s_manifest.yaml create mode 100644 exporter/datadogexporter/factory.go create mode 100644 exporter/datadogexporter/factory_test.go create mode 100644 exporter/datadogexporter/go.mod create mode 100644 exporter/datadogexporter/go.sum create mode 100644 exporter/datadogexporter/hostmetadata.go create mode 100644 exporter/datadogexporter/hostmetadata_test.go create mode 100644 exporter/datadogexporter/internal/metadata/config.go create mode 100644 exporter/datadogexporter/internal/metadata/ec2/ec2.go create mode 100644 exporter/datadogexporter/internal/metadata/ec2/ec2_test.go create mode 100644 exporter/datadogexporter/internal/metadata/host.go create mode 100644 exporter/datadogexporter/internal/metadata/host_test.go create mode 100644 exporter/datadogexporter/internal/metadata/metadata.go create mode 100644 exporter/datadogexporter/internal/metadata/metadata_test.go create mode 100644 exporter/datadogexporter/internal/metadata/system/host.go create mode 100644 exporter/datadogexporter/internal/metadata/system/host_test.go create mode 100644 exporter/datadogexporter/internal/metadata/system/host_unix.go create mode 100644 exporter/datadogexporter/internal/metadata/system/host_unix_test.go create mode 100644 exporter/datadogexporter/internal/metadata/system/host_windows.go create mode 100644 exporter/datadogexporter/internal/metadata/valid/valid.go create mode 100644 exporter/datadogexporter/internal/metadata/valid/valid_test.go create mode 100644 exporter/datadogexporter/internal/metrics/consumer.go create mode 100644 exporter/datadogexporter/internal/metrics/consumer_test.go create mode 100644 exporter/datadogexporter/internal/metrics/utils.go create mode 100644 exporter/datadogexporter/internal/metrics/utils_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/attributes.go create mode 100644 exporter/datadogexporter/internal/model/attributes/attributes_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/azure/azure.go create mode 100644 exporter/datadogexporter/internal/model/attributes/azure/azure_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/ec2/ec2.go create mode 100644 exporter/datadogexporter/internal/model/attributes/ec2/ec2_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/gcp/gcp.go create mode 100644 exporter/datadogexporter/internal/model/attributes/gcp/gcp_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/hostname.go create mode 100644 exporter/datadogexporter/internal/model/attributes/hostname_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/process.go create mode 100644 exporter/datadogexporter/internal/model/attributes/process_test.go create mode 100644 exporter/datadogexporter/internal/model/attributes/system.go create mode 100644 exporter/datadogexporter/internal/model/attributes/system_test.go create mode 100644 exporter/datadogexporter/internal/model/internal/instrumentationlibrary/metadata.go create mode 100644 exporter/datadogexporter/internal/model/internal/instrumentationlibrary/metadata_test.go create mode 100644 exporter/datadogexporter/internal/model/internal/testutils/test_utils.go create mode 100644 exporter/datadogexporter/internal/model/internal/utils/tags.go create mode 100644 exporter/datadogexporter/internal/model/internal/utils/tags_test.go create mode 100644 exporter/datadogexporter/internal/model/translator/config.go create mode 100644 exporter/datadogexporter/internal/model/translator/consumer.go create mode 100644 exporter/datadogexporter/internal/model/translator/dimensions.go create mode 100644 exporter/datadogexporter/internal/model/translator/dimensions_test.go create mode 100644 exporter/datadogexporter/internal/model/translator/hostname_provider.go create mode 100644 exporter/datadogexporter/internal/model/translator/metrics_translator.go create mode 100644 exporter/datadogexporter/internal/model/translator/metrics_translator_test.go create mode 100644 exporter/datadogexporter/internal/model/translator/sketches_test.go create mode 100644 exporter/datadogexporter/internal/model/translator/ttlcache.go create mode 100644 exporter/datadogexporter/internal/model/translator/ttlcache_test.go create mode 100644 exporter/datadogexporter/internal/scrub/scrub.go create mode 100644 exporter/datadogexporter/internal/scrub/scrub_test.go create mode 100644 exporter/datadogexporter/internal/sketches/sketches.go create mode 100644 exporter/datadogexporter/internal/sketches/sketches_test.go create mode 100644 exporter/datadogexporter/internal/testutils/test_utils.go create mode 100644 exporter/datadogexporter/internal/utils/api.go create mode 100644 exporter/datadogexporter/internal/utils/cache/cache.go create mode 100644 exporter/datadogexporter/internal/utils/cache/cache_test.go create mode 100644 exporter/datadogexporter/internal/utils/http.go create mode 100644 exporter/datadogexporter/internal/utils/http_test.go create mode 100644 exporter/datadogexporter/internal/utils/retrier.go create mode 100644 exporter/datadogexporter/internal/utils/retrier_test.go create mode 100644 exporter/datadogexporter/internal/utils/trace_helpers.go create mode 100644 exporter/datadogexporter/internal/utils/trace_helpers_test.go create mode 100644 exporter/datadogexporter/metrics_exporter.go create mode 100644 exporter/datadogexporter/metrics_exporter_test.go create mode 100644 exporter/datadogexporter/model.go create mode 100644 exporter/datadogexporter/stats.go create mode 100644 exporter/datadogexporter/testdata/config.yaml create mode 100644 exporter/datadogexporter/trace_connection.go create mode 100644 exporter/datadogexporter/traces_exporter.go create mode 100644 exporter/datadogexporter/traces_exporter_test.go create mode 100644 exporter/datadogexporter/translate_traces.go create mode 100644 exporter/datadogexporter/translate_traces_test.go create mode 100644 exporter/dynatraceexporter/Makefile create mode 100644 exporter/dynatraceexporter/README.md create mode 100644 exporter/dynatraceexporter/config/config.go create mode 100644 exporter/dynatraceexporter/config/config_test.go create mode 100644 exporter/dynatraceexporter/factory.go create mode 100644 exporter/dynatraceexporter/factory_test.go create mode 100644 exporter/dynatraceexporter/go.mod create mode 100644 exporter/dynatraceexporter/go.sum create mode 100644 exporter/dynatraceexporter/internal/serialization/gauge.go create mode 100644 exporter/dynatraceexporter/internal/serialization/gauge_test.go create mode 100644 exporter/dynatraceexporter/internal/serialization/histogram.go create mode 100644 exporter/dynatraceexporter/internal/serialization/histogram_test.go create mode 100644 exporter/dynatraceexporter/internal/serialization/serialization.go create mode 100644 exporter/dynatraceexporter/internal/serialization/sum.go create mode 100644 exporter/dynatraceexporter/internal/serialization/sum_test.go create mode 100644 exporter/dynatraceexporter/metrics_exporter.go create mode 100644 exporter/dynatraceexporter/metrics_exporter_test.go create mode 100644 exporter/dynatraceexporter/testdata/config.yml create mode 100644 exporter/elasticexporter/Makefile create mode 100644 exporter/elasticexporter/README.md create mode 100644 exporter/elasticexporter/config.go create mode 100644 exporter/elasticexporter/config_test.go create mode 100644 exporter/elasticexporter/exporter.go create mode 100644 exporter/elasticexporter/exporter_test.go create mode 100644 exporter/elasticexporter/factory.go create mode 100644 exporter/elasticexporter/factory_test.go create mode 100644 exporter/elasticexporter/go.mod create mode 100644 exporter/elasticexporter/go.sum create mode 100644 exporter/elasticexporter/internal/translator/elastic/exceptions.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/exceptions_test.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/metadata.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/metadata_test.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/metrics.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/metrics_test.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/traces.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/traces_test.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/utils.go create mode 100644 exporter/elasticexporter/internal/translator/elastic/utils_test.go create mode 100644 exporter/elasticexporter/testdata/config.yaml create mode 100644 exporter/elasticsearchexporter/Makefile create mode 100644 exporter/elasticsearchexporter/README.md create mode 100644 exporter/elasticsearchexporter/config.go create mode 100644 exporter/elasticsearchexporter/config_test.go create mode 100644 exporter/elasticsearchexporter/exporter.go create mode 100644 exporter/elasticsearchexporter/exporter_test.go create mode 100644 exporter/elasticsearchexporter/factory.go create mode 100644 exporter/elasticsearchexporter/factory_test.go create mode 100644 exporter/elasticsearchexporter/go.mod create mode 100644 exporter/elasticsearchexporter/go.sum create mode 100644 exporter/elasticsearchexporter/internal/objmodel/objmodel.go create mode 100644 exporter/elasticsearchexporter/internal/objmodel/objmodel_test.go create mode 100644 exporter/elasticsearchexporter/model.go create mode 100644 exporter/elasticsearchexporter/testdata/config.yaml create mode 100644 exporter/elasticsearchexporter/utils_test.go create mode 100644 exporter/f5cloudexporter/Makefile create mode 100644 exporter/f5cloudexporter/README.md create mode 100644 exporter/f5cloudexporter/auth.go create mode 100644 exporter/f5cloudexporter/auth_test.go create mode 100644 exporter/f5cloudexporter/config.go create mode 100644 exporter/f5cloudexporter/config_test.go create mode 100644 exporter/f5cloudexporter/doc.go create mode 100644 exporter/f5cloudexporter/factory.go create mode 100644 exporter/f5cloudexporter/factory_test.go create mode 100644 exporter/f5cloudexporter/go.mod create mode 100644 exporter/f5cloudexporter/go.sum create mode 100644 exporter/f5cloudexporter/testdata/config.yaml create mode 100644 exporter/f5cloudexporter/testdata/empty_credential_file.json create mode 100644 exporter/fileexporter/Makefile create mode 100644 exporter/fileexporter/README.md create mode 100644 exporter/fileexporter/config.go create mode 100644 exporter/fileexporter/config_test.go create mode 100644 exporter/fileexporter/doc.go create mode 100644 exporter/fileexporter/factory.go create mode 100644 exporter/fileexporter/factory_test.go create mode 100644 exporter/fileexporter/file_exporter.go create mode 100644 exporter/fileexporter/file_exporter_test.go create mode 100644 exporter/fileexporter/go.mod create mode 100644 exporter/fileexporter/go.sum create mode 100644 exporter/fileexporter/testdata/config.yaml create mode 100644 exporter/googlecloudexporter/Makefile create mode 100644 exporter/googlecloudexporter/README.md create mode 100644 exporter/googlecloudexporter/config.go create mode 100644 exporter/googlecloudexporter/config_test.go create mode 100644 exporter/googlecloudexporter/factory.go create mode 100644 exporter/googlecloudexporter/factory_test.go create mode 100644 exporter/googlecloudexporter/go.mod create mode 100644 exporter/googlecloudexporter/go.sum create mode 100644 exporter/googlecloudexporter/legacyconfig.go create mode 100644 exporter/googlecloudexporter/legacyconfig_test.go create mode 100644 exporter/googlecloudexporter/legacymetrics.go create mode 100644 exporter/googlecloudexporter/legacymetrics_test.go create mode 100644 exporter/googlecloudexporter/legacyobservability.go create mode 100644 exporter/googlecloudexporter/legacyresource.go create mode 100644 exporter/googlecloudexporter/legacyresource_test.go create mode 100644 exporter/googlecloudexporter/testdata/config.yaml create mode 100644 exporter/googlecloudexporter/testdata/legacyconfig.yaml create mode 100644 exporter/googlecloudpubsubexporter/Makefile create mode 100644 exporter/googlecloudpubsubexporter/README.md create mode 100644 exporter/googlecloudpubsubexporter/config.go create mode 100644 exporter/googlecloudpubsubexporter/config_test.go create mode 100644 exporter/googlecloudpubsubexporter/exporter.go create mode 100644 exporter/googlecloudpubsubexporter/exporter_test.go create mode 100644 exporter/googlecloudpubsubexporter/factory.go create mode 100644 exporter/googlecloudpubsubexporter/factory_test.go create mode 100644 exporter/googlecloudpubsubexporter/go.mod create mode 100644 exporter/googlecloudpubsubexporter/go.sum create mode 100644 exporter/googlecloudpubsubexporter/testdata/config.yaml create mode 100644 exporter/googlecloudpubsubexporter/watermark.go create mode 100644 exporter/googlecloudpubsubexporter/watermark_test.go create mode 100644 exporter/honeycombexporter/Makefile create mode 100644 exporter/honeycombexporter/README.md create mode 100644 exporter/honeycombexporter/config.go create mode 100644 exporter/honeycombexporter/config_test.go create mode 100644 exporter/honeycombexporter/factory.go create mode 100644 exporter/honeycombexporter/factory_test.go create mode 100644 exporter/honeycombexporter/go.mod create mode 100644 exporter/honeycombexporter/go.sum create mode 100644 exporter/honeycombexporter/honeycomb.go create mode 100644 exporter/honeycombexporter/honeycomb_test.go create mode 100644 exporter/honeycombexporter/ids.go create mode 100644 exporter/honeycombexporter/ids_test.go create mode 100644 exporter/honeycombexporter/testdata/config.yaml create mode 100644 exporter/honeycombexporter/translator.go create mode 100644 exporter/honeycombexporter/translator_test.go create mode 100644 exporter/humioexporter/Makefile create mode 100644 exporter/humioexporter/README.md create mode 100644 exporter/humioexporter/config.go create mode 100644 exporter/humioexporter/config_test.go create mode 100644 exporter/humioexporter/factory.go create mode 100644 exporter/humioexporter/factory_test.go create mode 100644 exporter/humioexporter/go.mod create mode 100644 exporter/humioexporter/go.sum create mode 100644 exporter/humioexporter/humio_client.go create mode 100644 exporter/humioexporter/humio_client_test.go create mode 100644 exporter/humioexporter/tag_strategy.go create mode 100644 exporter/humioexporter/tag_strategy_test.go create mode 100644 exporter/humioexporter/testdata/config.yaml create mode 100644 exporter/humioexporter/testdata/invalid-compression.yaml create mode 100644 exporter/humioexporter/testdata/invalid-tag.yaml create mode 100644 exporter/humioexporter/traces_exporter.go create mode 100644 exporter/humioexporter/traces_exporter_test.go create mode 100644 exporter/influxdbexporter/Makefile create mode 100644 exporter/influxdbexporter/README.md create mode 100644 exporter/influxdbexporter/config.go create mode 100644 exporter/influxdbexporter/config_test.go create mode 100644 exporter/influxdbexporter/exporter.go create mode 100644 exporter/influxdbexporter/factory.go create mode 100644 exporter/influxdbexporter/go.mod create mode 100644 exporter/influxdbexporter/go.sum create mode 100644 exporter/influxdbexporter/logger.go create mode 100644 exporter/influxdbexporter/testdata/config.yaml create mode 100644 exporter/influxdbexporter/writer.go create mode 100644 exporter/jaegerexporter/Makefile create mode 100644 exporter/jaegerexporter/README.md create mode 100644 exporter/jaegerexporter/config.go create mode 100644 exporter/jaegerexporter/config_test.go create mode 100644 exporter/jaegerexporter/doc.go create mode 100644 exporter/jaegerexporter/exporter.go create mode 100644 exporter/jaegerexporter/exporter_test.go create mode 100644 exporter/jaegerexporter/factory.go create mode 100644 exporter/jaegerexporter/factory_test.go create mode 100644 exporter/jaegerexporter/go.mod create mode 100644 exporter/jaegerexporter/go.sum create mode 100644 exporter/jaegerexporter/metrics.go create mode 100644 exporter/jaegerexporter/metrics_test.go create mode 100644 exporter/jaegerexporter/testdata/ca.crt create mode 100644 exporter/jaegerexporter/testdata/client.crt create mode 100644 exporter/jaegerexporter/testdata/client.key create mode 100644 exporter/jaegerexporter/testdata/config.yaml create mode 100644 exporter/jaegerexporter/testdata/server.crt create mode 100644 exporter/jaegerexporter/testdata/server.key create mode 100644 exporter/jaegerexporter/testdata/test_cert.pem create mode 100644 exporter/jaegerthrifthttpexporter/Makefile create mode 100644 exporter/jaegerthrifthttpexporter/README.md create mode 100644 exporter/jaegerthrifthttpexporter/config.go create mode 100644 exporter/jaegerthrifthttpexporter/config_test.go create mode 100644 exporter/jaegerthrifthttpexporter/doc.go create mode 100644 exporter/jaegerthrifthttpexporter/exporter.go create mode 100644 exporter/jaegerthrifthttpexporter/exporter_test.go create mode 100644 exporter/jaegerthrifthttpexporter/factory.go create mode 100644 exporter/jaegerthrifthttpexporter/factory_test.go create mode 100644 exporter/jaegerthrifthttpexporter/go.mod create mode 100644 exporter/jaegerthrifthttpexporter/go.sum create mode 100644 exporter/jaegerthrifthttpexporter/testdata/config.yaml create mode 100644 exporter/jaegerthrifthttpexporter/testdata/thrift_batch_no_binary_tags_01.json create mode 100644 exporter/jaegerthrifthttpexporter/testdata/thrift_batch_no_binary_tags_02.json create mode 100644 exporter/kafkaexporter/Makefile create mode 100644 exporter/kafkaexporter/README.md create mode 100644 exporter/kafkaexporter/authentication.go create mode 100644 exporter/kafkaexporter/authentication_test.go create mode 100644 exporter/kafkaexporter/config.go create mode 100644 exporter/kafkaexporter/config_test.go create mode 100644 exporter/kafkaexporter/doc.go create mode 100644 exporter/kafkaexporter/factory.go create mode 100644 exporter/kafkaexporter/factory_test.go create mode 100644 exporter/kafkaexporter/go.mod create mode 100644 exporter/kafkaexporter/go.sum create mode 100644 exporter/kafkaexporter/internal/awsmsk/doc.go create mode 100644 exporter/kafkaexporter/internal/awsmsk/iam_scram_client.go create mode 100644 exporter/kafkaexporter/internal/awsmsk/iam_scram_client_test.go create mode 100644 exporter/kafkaexporter/jaeger_marshaler.go create mode 100644 exporter/kafkaexporter/jaeger_marshaler_test.go create mode 100644 exporter/kafkaexporter/kafka_exporter.go create mode 100644 exporter/kafkaexporter/kafka_exporter_test.go create mode 100644 exporter/kafkaexporter/marshaler.go create mode 100644 exporter/kafkaexporter/marshaler_test.go create mode 100644 exporter/kafkaexporter/pdata_marshaler.go create mode 100644 exporter/kafkaexporter/scram_client.go create mode 100644 exporter/kafkaexporter/testdata/config.yaml create mode 100644 exporter/loadbalancingexporter/Makefile create mode 100644 exporter/loadbalancingexporter/README.md create mode 100644 exporter/loadbalancingexporter/config.go create mode 100644 exporter/loadbalancingexporter/config_test.go create mode 100644 exporter/loadbalancingexporter/consistent_hashing.go create mode 100644 exporter/loadbalancingexporter/consistent_hashing_test.go create mode 100644 exporter/loadbalancingexporter/example/Dockerfile create mode 100644 exporter/loadbalancingexporter/example/README.md create mode 100644 exporter/loadbalancingexporter/example/docker-compose.yaml create mode 100644 exporter/loadbalancingexporter/example/otel-agent-config.yaml create mode 100644 exporter/loadbalancingexporter/example/otel-collector-config.yaml create mode 100644 exporter/loadbalancingexporter/factory.go create mode 100644 exporter/loadbalancingexporter/factory_test.go create mode 100644 exporter/loadbalancingexporter/go.mod create mode 100644 exporter/loadbalancingexporter/go.sum create mode 100644 exporter/loadbalancingexporter/loadbalancer.go create mode 100644 exporter/loadbalancingexporter/loadbalancer_test.go create mode 100644 exporter/loadbalancingexporter/log_exporter.go create mode 100644 exporter/loadbalancingexporter/log_exporter_test.go create mode 100644 exporter/loadbalancingexporter/metrics.go create mode 100644 exporter/loadbalancingexporter/metrics_test.go create mode 100644 exporter/loadbalancingexporter/resolver.go create mode 100644 exporter/loadbalancingexporter/resolver_dns.go create mode 100644 exporter/loadbalancingexporter/resolver_dns_test.go create mode 100644 exporter/loadbalancingexporter/resolver_static.go create mode 100644 exporter/loadbalancingexporter/resolver_static_test.go create mode 100644 exporter/loadbalancingexporter/resolver_test.go create mode 100644 exporter/loadbalancingexporter/testdata/config.yaml create mode 100644 exporter/loadbalancingexporter/testdata/test-build-exporter-config.yaml create mode 100644 exporter/loadbalancingexporter/trace_exporter.go create mode 100644 exporter/loadbalancingexporter/trace_exporter_test.go create mode 100644 exporter/logzioexporter/Makefile create mode 100644 exporter/logzioexporter/README.md create mode 100644 exporter/logzioexporter/config.go create mode 100644 exporter/logzioexporter/config_test.go create mode 100644 exporter/logzioexporter/example/config.yaml create mode 100644 exporter/logzioexporter/exporter.go create mode 100644 exporter/logzioexporter/exporter_test.go create mode 100644 exporter/logzioexporter/factory.go create mode 100644 exporter/logzioexporter/factory_test.go create mode 100644 exporter/logzioexporter/go.mod create mode 100644 exporter/logzioexporter/go.sum create mode 100644 exporter/logzioexporter/logger.go create mode 100644 exporter/logzioexporter/logger_test.go create mode 100644 exporter/logzioexporter/testdata/config.yaml create mode 100644 exporter/logzioexporter/testdata/configd.yaml create mode 100644 exporter/lokiexporter/Makefile create mode 100644 exporter/lokiexporter/README.md create mode 100644 exporter/lokiexporter/config.go create mode 100644 exporter/lokiexporter/config_test.go create mode 100644 exporter/lokiexporter/doc.go create mode 100644 exporter/lokiexporter/encode_json.go create mode 100644 exporter/lokiexporter/encode_json_test.go create mode 100644 exporter/lokiexporter/example/Dockerfile create mode 100644 exporter/lokiexporter/example/datasource.yaml create mode 100644 exporter/lokiexporter/example/docker-compose.yml create mode 100644 exporter/lokiexporter/example/grafana.ini create mode 100644 exporter/lokiexporter/example/loki-config.yaml create mode 100644 exporter/lokiexporter/example/otel-collector-config.yml create mode 100644 exporter/lokiexporter/exporter.go create mode 100644 exporter/lokiexporter/exporter_test.go create mode 100644 exporter/lokiexporter/factory.go create mode 100644 exporter/lokiexporter/factory_test.go create mode 100644 exporter/lokiexporter/go.mod create mode 100644 exporter/lokiexporter/go.sum create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/LICENSE create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/README.md create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/extensions.go create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/logproto.pb.go create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/logproto.proto create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/timestamp.go create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/types.go create mode 100644 exporter/lokiexporter/internal/third_party/loki/logproto/types_test.go create mode 100644 exporter/lokiexporter/testdata/config.yaml create mode 100644 exporter/newrelicexporter/Makefile create mode 100644 exporter/newrelicexporter/README.md create mode 100644 exporter/newrelicexporter/config.go create mode 100644 exporter/newrelicexporter/config_test.go create mode 100644 exporter/newrelicexporter/errors.go create mode 100644 exporter/newrelicexporter/errors_test.go create mode 100644 exporter/newrelicexporter/factory.go create mode 100644 exporter/newrelicexporter/factory_test.go create mode 100644 exporter/newrelicexporter/go.mod create mode 100644 exporter/newrelicexporter/go.sum create mode 100644 exporter/newrelicexporter/metrics.go create mode 100644 exporter/newrelicexporter/metrics_test.go create mode 100644 exporter/newrelicexporter/mock_test.go create mode 100644 exporter/newrelicexporter/newrelic.go create mode 100644 exporter/newrelicexporter/newrelic_test.go create mode 100644 exporter/newrelicexporter/testdata/config.yaml create mode 100644 exporter/newrelicexporter/transformer.go create mode 100644 exporter/newrelicexporter/transformer_test.go create mode 100644 exporter/observiqexporter/Makefile create mode 100644 exporter/observiqexporter/README.md create mode 100644 exporter/observiqexporter/client.go create mode 100644 exporter/observiqexporter/client_test.go create mode 100644 exporter/observiqexporter/config.go create mode 100644 exporter/observiqexporter/config_test.go create mode 100644 exporter/observiqexporter/converter.go create mode 100644 exporter/observiqexporter/converter_test.go create mode 100644 exporter/observiqexporter/example/config.yaml create mode 100644 exporter/observiqexporter/exporter.go create mode 100644 exporter/observiqexporter/factory.go create mode 100644 exporter/observiqexporter/factory_test.go create mode 100644 exporter/observiqexporter/go.mod create mode 100644 exporter/observiqexporter/go.sum create mode 100644 exporter/observiqexporter/testdata/config.yaml create mode 100644 exporter/observiqexporter/time.go create mode 100644 exporter/opencensusexporter/Makefile create mode 100644 exporter/opencensusexporter/README.md create mode 100644 exporter/opencensusexporter/config.go create mode 100644 exporter/opencensusexporter/config_test.go create mode 100644 exporter/opencensusexporter/doc.go create mode 100644 exporter/opencensusexporter/factory.go create mode 100644 exporter/opencensusexporter/factory_test.go create mode 100644 exporter/opencensusexporter/go.mod create mode 100644 exporter/opencensusexporter/go.sum create mode 100644 exporter/opencensusexporter/opencensus.go create mode 100644 exporter/opencensusexporter/opencensus_test.go create mode 100644 exporter/opencensusexporter/testdata/config.yaml create mode 100644 exporter/opencensusexporter/testdata/test_cert.pem create mode 100644 exporter/parquetexporter/Makefile create mode 100644 exporter/parquetexporter/README.md create mode 100644 exporter/parquetexporter/doc.go create mode 100644 exporter/parquetexporter/exporter.go create mode 100644 exporter/parquetexporter/factory.go create mode 100644 exporter/parquetexporter/go.mod create mode 100644 exporter/parquetexporter/go.sum create mode 100644 exporter/parquetexporter/testdata/config.yaml create mode 100644 exporter/prometheusexporter/Makefile create mode 100644 exporter/prometheusexporter/README.md create mode 100644 exporter/prometheusexporter/accumulator.go create mode 100644 exporter/prometheusexporter/accumulator_test.go create mode 100644 exporter/prometheusexporter/collector.go create mode 100644 exporter/prometheusexporter/collector_test.go create mode 100644 exporter/prometheusexporter/config.go create mode 100644 exporter/prometheusexporter/config_test.go create mode 100644 exporter/prometheusexporter/doc.go create mode 100644 exporter/prometheusexporter/end_to_end_test.go create mode 100644 exporter/prometheusexporter/factory.go create mode 100644 exporter/prometheusexporter/factory_test.go create mode 100644 exporter/prometheusexporter/go.mod create mode 100644 exporter/prometheusexporter/go.sum create mode 100644 exporter/prometheusexporter/prometheus.go create mode 100644 exporter/prometheusexporter/prometheus_test.go create mode 100644 exporter/prometheusexporter/sanitize.go create mode 100644 exporter/prometheusexporter/sanitize_test.go create mode 100644 exporter/prometheusexporter/testdata/config.yaml create mode 100644 exporter/prometheusremotewriteexporter/DESIGN.md create mode 100644 exporter/prometheusremotewriteexporter/Makefile create mode 100644 exporter/prometheusremotewriteexporter/README.md create mode 100644 exporter/prometheusremotewriteexporter/config.go create mode 100644 exporter/prometheusremotewriteexporter/config_test.go create mode 100644 exporter/prometheusremotewriteexporter/context.go create mode 100644 exporter/prometheusremotewriteexporter/doc.go create mode 100644 exporter/prometheusremotewriteexporter/exporter.go create mode 100644 exporter/prometheusremotewriteexporter/exporter_test.go create mode 100644 exporter/prometheusremotewriteexporter/factory.go create mode 100644 exporter/prometheusremotewriteexporter/factory_test.go create mode 100644 exporter/prometheusremotewriteexporter/go.mod create mode 100644 exporter/prometheusremotewriteexporter/go.sum create mode 100644 exporter/prometheusremotewriteexporter/helper.go create mode 100644 exporter/prometheusremotewriteexporter/helper_test.go create mode 100644 exporter/prometheusremotewriteexporter/img/cortex.png create mode 100644 exporter/prometheusremotewriteexporter/img/timeseries.png create mode 100644 exporter/prometheusremotewriteexporter/testdata/config.yaml create mode 100644 exporter/prometheusremotewriteexporter/testdata/disabled_queue.yaml create mode 100644 exporter/prometheusremotewriteexporter/testdata/negative_num_consumers.yaml create mode 100644 exporter/prometheusremotewriteexporter/testdata/negative_queue_size.yaml create mode 100644 exporter/prometheusremotewriteexporter/testutil_test.go create mode 100644 exporter/prometheusremotewriteexporter/wal.go create mode 100644 exporter/prometheusremotewriteexporter/wal_test.go create mode 100644 exporter/sapmexporter/Makefile create mode 100644 exporter/sapmexporter/README.md create mode 100644 exporter/sapmexporter/config.go create mode 100644 exporter/sapmexporter/config_test.go create mode 100644 exporter/sapmexporter/examples/signalfx-collector.yaml create mode 100644 exporter/sapmexporter/examples/signalfx-k8s.yaml create mode 100644 exporter/sapmexporter/exporter.go create mode 100644 exporter/sapmexporter/exporter_test.go create mode 100644 exporter/sapmexporter/factory.go create mode 100644 exporter/sapmexporter/factory_test.go create mode 100644 exporter/sapmexporter/go.mod create mode 100644 exporter/sapmexporter/go.sum create mode 100644 exporter/sapmexporter/testdata/config.yaml create mode 100644 exporter/sentryexporter/Makefile create mode 100644 exporter/sentryexporter/README.md create mode 100644 exporter/sentryexporter/config.go create mode 100644 exporter/sentryexporter/config_test.go create mode 100644 exporter/sentryexporter/docs/transformation.md create mode 100644 exporter/sentryexporter/factory.go create mode 100644 exporter/sentryexporter/factory_test.go create mode 100644 exporter/sentryexporter/go.mod create mode 100644 exporter/sentryexporter/go.sum create mode 100644 exporter/sentryexporter/sentry_exporter.go create mode 100644 exporter/sentryexporter/sentry_exporter_test.go create mode 100644 exporter/sentryexporter/testdata/config.yaml create mode 100644 exporter/sentryexporter/transport.go create mode 100644 exporter/sentryexporter/utils.go create mode 100644 exporter/signalfxexporter/Makefile create mode 100644 exporter/signalfxexporter/README.md create mode 100644 exporter/signalfxexporter/config.go create mode 100644 exporter/signalfxexporter/config_test.go create mode 100644 exporter/signalfxexporter/doc.go create mode 100644 exporter/signalfxexporter/dpclient.go create mode 100644 exporter/signalfxexporter/eventclient.go create mode 100644 exporter/signalfxexporter/example/config.yaml create mode 100644 exporter/signalfxexporter/exporter.go create mode 100644 exporter/signalfxexporter/exporter_test.go create mode 100644 exporter/signalfxexporter/factory.go create mode 100644 exporter/signalfxexporter/factory_test.go create mode 100644 exporter/signalfxexporter/go.mod create mode 100644 exporter/signalfxexporter/go.sum create mode 100644 exporter/signalfxexporter/internal/correlation/config.go create mode 100644 exporter/signalfxexporter/internal/correlation/config_test.go create mode 100644 exporter/signalfxexporter/internal/correlation/correlation.go create mode 100644 exporter/signalfxexporter/internal/correlation/correlation_test.go create mode 100644 exporter/signalfxexporter/internal/correlation/doc.go create mode 100644 exporter/signalfxexporter/internal/correlation/logshims.go create mode 100644 exporter/signalfxexporter/internal/correlation/logshims_test.go create mode 100644 exporter/signalfxexporter/internal/correlation/spanshims.go create mode 100644 exporter/signalfxexporter/internal/correlation/spanshims_test.go create mode 100644 exporter/signalfxexporter/internal/dimensions/dimclient.go create mode 100644 exporter/signalfxexporter/internal/dimensions/dimclient_test.go create mode 100644 exporter/signalfxexporter/internal/dimensions/dimensionupdate.go create mode 100644 exporter/signalfxexporter/internal/dimensions/metadata.go create mode 100644 exporter/signalfxexporter/internal/dimensions/metadata_test.go create mode 100644 exporter/signalfxexporter/internal/dimensions/requests.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/host.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/host_linux.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/host_linux_test.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/host_others.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/host_test.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/metadata.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/metadata_linux_test.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/metadata_others_test.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/metadata_test.go create mode 100644 exporter/signalfxexporter/internal/hostmetadata/testdata/centos-release/centos-release create mode 100644 exporter/signalfxexporter/internal/hostmetadata/testdata/lsb-release/lsb-release create mode 100644 exporter/signalfxexporter/internal/hostmetadata/testdata/os-release/os-release create mode 100644 exporter/signalfxexporter/internal/hostmetadata/testdata/redhat-release/redhat-release create mode 100644 exporter/signalfxexporter/internal/hostmetadata/testdata/system-release/system-release create mode 100644 exporter/signalfxexporter/internal/translation/constants.go create mode 100644 exporter/signalfxexporter/internal/translation/converter.go create mode 100644 exporter/signalfxexporter/internal/translation/converter_test.go create mode 100644 exporter/signalfxexporter/internal/translation/default_metrics.go create mode 100644 exporter/signalfxexporter/internal/translation/delta_translator.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/datapoint.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/dimensions.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/dimensions_test.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/filterset.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/filterset_test.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/matching.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/metricfilter.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/string.go create mode 100644 exporter/signalfxexporter/internal/translation/dpfilters/string_test.go create mode 100644 exporter/signalfxexporter/internal/translation/logdata_to_signalfxv2.go create mode 100644 exporter/signalfxexporter/internal/translation/logdata_to_signalfxv2_test.go create mode 100644 exporter/signalfxexporter/internal/translation/translator.go create mode 100644 exporter/signalfxexporter/internal/translation/translator_test.go create mode 100644 exporter/signalfxexporter/testdata/config.yaml create mode 100644 exporter/signalfxexporter/testdata/json/non_default_metrics.json create mode 100644 exporter/signalfxexporter/testdata/json/non_default_metrics_otel_convention.json create mode 100644 exporter/signalfxexporter/testdata/json/system.cpu.time.1.json create mode 100644 exporter/signalfxexporter/testdata/json/system.cpu.time.2.json create mode 100644 exporter/signalfxexporter/testdata/json/system.filesystem.usage.json create mode 100644 exporter/skywalkingexporter/Makefile create mode 100644 exporter/skywalkingexporter/README.md create mode 100644 exporter/skywalkingexporter/config.go create mode 100644 exporter/skywalkingexporter/config_test.go create mode 100644 exporter/skywalkingexporter/doc.go create mode 100644 exporter/skywalkingexporter/factory.go create mode 100644 exporter/skywalkingexporter/factory_test.go create mode 100644 exporter/skywalkingexporter/go.mod create mode 100644 exporter/skywalkingexporter/go.sum create mode 100644 exporter/skywalkingexporter/logrecord_to_logdata.go create mode 100644 exporter/skywalkingexporter/logrecord_to_logdata_test.go create mode 100644 exporter/skywalkingexporter/metricrecord_to_metricdata.go create mode 100644 exporter/skywalkingexporter/metricrecord_to_metricdata_test.go create mode 100644 exporter/skywalkingexporter/skywalking.go create mode 100644 exporter/skywalkingexporter/skywalking_benchmark_test.go create mode 100644 exporter/skywalkingexporter/skywalking_test.go create mode 100644 exporter/skywalkingexporter/testdata/config.yaml create mode 100644 exporter/skywalkingexporter/testdata/test_cert.pem create mode 100644 exporter/skywalkingexporter/testdata/test_key.pem create mode 100644 exporter/splunkhecexporter/Makefile create mode 100644 exporter/splunkhecexporter/README.md create mode 100644 exporter/splunkhecexporter/client.go create mode 100644 exporter/splunkhecexporter/client_test.go create mode 100644 exporter/splunkhecexporter/config.go create mode 100644 exporter/splunkhecexporter/config_test.go create mode 100644 exporter/splunkhecexporter/doc.go create mode 100644 exporter/splunkhecexporter/example/Dockerfile create mode 100644 exporter/splunkhecexporter/example/README.md create mode 100644 exporter/splunkhecexporter/example/docker-compose.yml create mode 100644 exporter/splunkhecexporter/example/otel-collector-config.yml create mode 100644 exporter/splunkhecexporter/example/splunk.yml create mode 100644 exporter/splunkhecexporter/exporter.go create mode 100644 exporter/splunkhecexporter/exporter_test.go create mode 100644 exporter/splunkhecexporter/factory.go create mode 100644 exporter/splunkhecexporter/factory_test.go create mode 100644 exporter/splunkhecexporter/go.mod create mode 100644 exporter/splunkhecexporter/go.sum create mode 100644 exporter/splunkhecexporter/logdata_to_splunk.go create mode 100644 exporter/splunkhecexporter/logdata_to_splunk_test.go create mode 100644 exporter/splunkhecexporter/metricdata_to_splunk.go create mode 100644 exporter/splunkhecexporter/metricdata_to_splunk_test.go create mode 100644 exporter/splunkhecexporter/testdata/config.yaml create mode 100644 exporter/splunkhecexporter/tracedata_to_splunk.go create mode 100644 exporter/splunkhecexporter/tracedata_to_splunk_test.go create mode 100644 exporter/stackdriverexporter/Makefile create mode 100644 exporter/stackdriverexporter/README.md create mode 100644 exporter/stackdriverexporter/factory.go create mode 100644 exporter/stackdriverexporter/factory_test.go create mode 100644 exporter/stackdriverexporter/go.mod create mode 100644 exporter/stackdriverexporter/go.sum create mode 100644 exporter/stackdriverexporter/testdata/config.yaml create mode 100644 exporter/sumologicexporter/Makefile create mode 100644 exporter/sumologicexporter/README.md create mode 100644 exporter/sumologicexporter/carbon_formatter.go create mode 100644 exporter/sumologicexporter/carbon_formatter_test.go create mode 100644 exporter/sumologicexporter/compress.go create mode 100644 exporter/sumologicexporter/compress_test.go create mode 100644 exporter/sumologicexporter/config.go create mode 100644 exporter/sumologicexporter/config_test.go create mode 100644 exporter/sumologicexporter/exporter.go create mode 100644 exporter/sumologicexporter/exporter_test.go create mode 100644 exporter/sumologicexporter/factory.go create mode 100644 exporter/sumologicexporter/factory_test.go create mode 100644 exporter/sumologicexporter/fields.go create mode 100644 exporter/sumologicexporter/fields_test.go create mode 100644 exporter/sumologicexporter/filter.go create mode 100644 exporter/sumologicexporter/filter_test.go create mode 100644 exporter/sumologicexporter/go.mod create mode 100644 exporter/sumologicexporter/go.sum create mode 100644 exporter/sumologicexporter/graphite_formatter.go create mode 100644 exporter/sumologicexporter/graphite_formatter_test.go create mode 100644 exporter/sumologicexporter/prometheus_formatter.go create mode 100644 exporter/sumologicexporter/prometheus_formatter_test.go create mode 100644 exporter/sumologicexporter/sender.go create mode 100644 exporter/sumologicexporter/sender_test.go create mode 100644 exporter/sumologicexporter/source_format.go create mode 100644 exporter/sumologicexporter/source_format_test.go create mode 100644 exporter/sumologicexporter/test_data.go create mode 100644 exporter/tanzuobservabilityexporter/Makefile create mode 100644 exporter/tanzuobservabilityexporter/README.md create mode 100644 exporter/tanzuobservabilityexporter/config.go create mode 100644 exporter/tanzuobservabilityexporter/config_test.go create mode 100644 exporter/tanzuobservabilityexporter/exporter.go create mode 100644 exporter/tanzuobservabilityexporter/exporter_test.go create mode 100644 exporter/tanzuobservabilityexporter/factory.go create mode 100644 exporter/tanzuobservabilityexporter/factory_test.go create mode 100644 exporter/tanzuobservabilityexporter/go.mod create mode 100644 exporter/tanzuobservabilityexporter/go.sum create mode 100644 exporter/tanzuobservabilityexporter/metrics.go create mode 100644 exporter/tanzuobservabilityexporter/metrics_exporter.go create mode 100644 exporter/tanzuobservabilityexporter/metrics_exporter_test.go create mode 100644 exporter/tanzuobservabilityexporter/metrics_test.go create mode 100644 exporter/tanzuobservabilityexporter/testdata/config.yaml create mode 100644 exporter/tanzuobservabilityexporter/transformer.go create mode 100644 exporter/tanzuobservabilityexporter/transformer_test.go create mode 100644 exporter/tencentcloudlogserviceexporter/Makefile create mode 100644 exporter/tencentcloudlogserviceexporter/README.md create mode 100644 exporter/tencentcloudlogserviceexporter/config.go create mode 100644 exporter/tencentcloudlogserviceexporter/config_test.go create mode 100644 exporter/tencentcloudlogserviceexporter/example/config.yaml create mode 100644 exporter/tencentcloudlogserviceexporter/factory.go create mode 100644 exporter/tencentcloudlogserviceexporter/go.mod create mode 100644 exporter/tencentcloudlogserviceexporter/go.sum create mode 100644 exporter/tencentcloudlogserviceexporter/logs_exporter.go create mode 100644 exporter/tencentcloudlogserviceexporter/logs_exporter_test.go create mode 100644 exporter/tencentcloudlogserviceexporter/logsdata_to_logservice.go create mode 100644 exporter/tencentcloudlogserviceexporter/logsdata_to_logservice_test.go create mode 100644 exporter/tencentcloudlogserviceexporter/proto/cls.pb.go create mode 100644 exporter/tencentcloudlogserviceexporter/proto/cls.proto create mode 100644 exporter/tencentcloudlogserviceexporter/sanitize.go create mode 100644 exporter/tencentcloudlogserviceexporter/sanitize_test.go create mode 100644 exporter/tencentcloudlogserviceexporter/testdata/config.yaml create mode 100644 exporter/tencentcloudlogserviceexporter/testdata/logservice_log_data.json create mode 100644 exporter/tencentcloudlogserviceexporter/uploader.go create mode 100644 exporter/zipkinexporter/Makefile create mode 100644 exporter/zipkinexporter/README.md create mode 100644 exporter/zipkinexporter/config.go create mode 100644 exporter/zipkinexporter/config_test.go create mode 100644 exporter/zipkinexporter/doc.go create mode 100644 exporter/zipkinexporter/factory.go create mode 100644 exporter/zipkinexporter/factory_test.go create mode 100644 exporter/zipkinexporter/go.mod create mode 100644 exporter/zipkinexporter/go.sum create mode 100644 exporter/zipkinexporter/testdata/config.yaml create mode 100644 exporter/zipkinexporter/testutils_test.go create mode 100644 exporter/zipkinexporter/zipkin.go create mode 100644 exporter/zipkinexporter/zipkin_test.go create mode 100644 extension/asapauthextension/Makefile create mode 100644 extension/asapauthextension/README.md create mode 100644 extension/asapauthextension/config.go create mode 100644 extension/asapauthextension/config_test.go create mode 100644 extension/asapauthextension/extension.go create mode 100644 extension/asapauthextension/extension_test.go create mode 100644 extension/asapauthextension/factory.go create mode 100644 extension/asapauthextension/factory_test.go create mode 100644 extension/asapauthextension/go.mod create mode 100644 extension/asapauthextension/go.sum create mode 100644 extension/asapauthextension/testdata/config.yaml create mode 100644 extension/asapauthextension/testdata/config_bad.yaml create mode 100644 extension/awsproxy/Makefile create mode 100644 extension/awsproxy/README.md create mode 100644 extension/awsproxy/config.go create mode 100644 extension/awsproxy/config_test.go create mode 100644 extension/awsproxy/extension.go create mode 100644 extension/awsproxy/extension_test.go create mode 100644 extension/awsproxy/factory.go create mode 100644 extension/awsproxy/factory_test.go create mode 100644 extension/awsproxy/go.mod create mode 100644 extension/awsproxy/go.sum create mode 100644 extension/awsproxy/testdata/config.yaml create mode 100644 extension/basicauthextension/Makefile create mode 100644 extension/basicauthextension/README.md create mode 100644 extension/basicauthextension/config.go create mode 100644 extension/basicauthextension/extension.go create mode 100644 extension/basicauthextension/extension_test.go create mode 100644 extension/basicauthextension/factory.go create mode 100644 extension/basicauthextension/factory_test.go create mode 100644 extension/basicauthextension/go.mod create mode 100644 extension/basicauthextension/go.sum create mode 100644 extension/bearertokenauthextension/Makefile create mode 100644 extension/bearertokenauthextension/README.md create mode 100644 extension/bearertokenauthextension/bearertokenauth.go create mode 100644 extension/bearertokenauthextension/bearertokenauth_test.go create mode 100644 extension/bearertokenauthextension/config.go create mode 100644 extension/bearertokenauthextension/config_test.go create mode 100644 extension/bearertokenauthextension/factory.go create mode 100644 extension/bearertokenauthextension/factory_test.go create mode 100644 extension/bearertokenauthextension/go.mod create mode 100644 extension/bearertokenauthextension/go.sum create mode 100644 extension/bearertokenauthextension/testdata/config.yaml create mode 100644 extension/bearertokenauthextension/testdata/config_missing_token.yaml create mode 100644 extension/fluentbitextension/Makefile create mode 100644 extension/fluentbitextension/README.md create mode 100644 extension/fluentbitextension/config.go create mode 100644 extension/fluentbitextension/config_test.go create mode 100644 extension/fluentbitextension/factory.go create mode 100644 extension/fluentbitextension/factory_test.go create mode 100644 extension/fluentbitextension/go.mod create mode 100644 extension/fluentbitextension/go.sum create mode 100644 extension/fluentbitextension/images/chained.png create mode 100644 extension/fluentbitextension/images/sidebyside.png create mode 100644 extension/fluentbitextension/process.go create mode 100644 extension/fluentbitextension/process_linux.go create mode 100644 extension/fluentbitextension/process_linux_test.go create mode 100644 extension/fluentbitextension/process_others.go create mode 100644 extension/fluentbitextension/testdata/config.yaml create mode 100644 extension/healthcheckextension/Makefile create mode 100644 extension/healthcheckextension/README.md create mode 100644 extension/healthcheckextension/config.go create mode 100644 extension/healthcheckextension/config_test.go create mode 100644 extension/healthcheckextension/doc.go create mode 100644 extension/healthcheckextension/exporter.go create mode 100644 extension/healthcheckextension/exporter_test.go create mode 100644 extension/healthcheckextension/factory.go create mode 100644 extension/healthcheckextension/factory_test.go create mode 100644 extension/healthcheckextension/go.mod create mode 100644 extension/healthcheckextension/go.sum create mode 100644 extension/healthcheckextension/healthcheckextension.go create mode 100644 extension/healthcheckextension/healthcheckextension_test.go create mode 100644 extension/healthcheckextension/testdata/config.yaml create mode 100644 extension/healthcheckextension/testdata/config_bad.yaml create mode 100644 extension/httpforwarder/Makefile create mode 100644 extension/httpforwarder/README.md create mode 100644 extension/httpforwarder/config.go create mode 100644 extension/httpforwarder/extension.go create mode 100644 extension/httpforwarder/extension_test.go create mode 100644 extension/httpforwarder/factory.go create mode 100644 extension/httpforwarder/factory_test.go create mode 100644 extension/httpforwarder/go.mod create mode 100644 extension/httpforwarder/go.sum create mode 100644 extension/jaegerremotesampling/Makefile create mode 100644 extension/jaegerremotesampling/README.md create mode 100644 extension/jaegerremotesampling/config.go create mode 100644 extension/jaegerremotesampling/config_test.go create mode 100644 extension/jaegerremotesampling/extension.go create mode 100644 extension/jaegerremotesampling/extension_test.go create mode 100644 extension/jaegerremotesampling/factory.go create mode 100644 extension/jaegerremotesampling/factory_test.go create mode 100644 extension/jaegerremotesampling/go.mod create mode 100644 extension/jaegerremotesampling/go.sum create mode 100644 extension/jaegerremotesampling/internal/http.go create mode 100644 extension/jaegerremotesampling/internal/http_test.go create mode 100644 extension/jaegerremotesampling/testdata/config.yaml create mode 100644 extension/jaegerremotesampling/testdata/strategy.json create mode 100644 extension/oauth2clientauthextension/Makefile create mode 100644 extension/oauth2clientauthextension/README.md create mode 100644 extension/oauth2clientauthextension/config.go create mode 100644 extension/oauth2clientauthextension/config_test.go create mode 100644 extension/oauth2clientauthextension/doc.go create mode 100644 extension/oauth2clientauthextension/extension.go create mode 100644 extension/oauth2clientauthextension/extension_test.go create mode 100644 extension/oauth2clientauthextension/factory.go create mode 100644 extension/oauth2clientauthextension/factory_test.go create mode 100644 extension/oauth2clientauthextension/go.mod create mode 100644 extension/oauth2clientauthextension/go.sum create mode 100644 extension/oauth2clientauthextension/testdata/README.md create mode 100644 extension/oauth2clientauthextension/testdata/config.yaml create mode 100644 extension/oauth2clientauthextension/testdata/config_bad.yaml create mode 100644 extension/oauth2clientauthextension/testdata/test-cert.pem create mode 100644 extension/oauth2clientauthextension/testdata/test-key.pem create mode 100644 extension/oauth2clientauthextension/testdata/testCA.pem create mode 100644 extension/observer/Makefile create mode 100644 extension/observer/README.md create mode 100644 extension/observer/dockerobserver/Makefile create mode 100644 extension/observer/dockerobserver/README.md create mode 100644 extension/observer/dockerobserver/config.go create mode 100644 extension/observer/dockerobserver/config_test.go create mode 100644 extension/observer/dockerobserver/extension.go create mode 100644 extension/observer/dockerobserver/extension_test.go create mode 100644 extension/observer/dockerobserver/factory.go create mode 100644 extension/observer/dockerobserver/factory_test.go create mode 100644 extension/observer/dockerobserver/go.mod create mode 100644 extension/observer/dockerobserver/go.sum create mode 100644 extension/observer/dockerobserver/integration_test.go create mode 100644 extension/observer/dockerobserver/testdata/config.yaml create mode 100644 extension/observer/dockerobserver/testdata/container.json create mode 100644 extension/observer/ecsobserver/Makefile create mode 100644 extension/observer/ecsobserver/README.md create mode 100644 extension/observer/ecsobserver/config.go create mode 100644 extension/observer/ecsobserver/config_test.go create mode 100644 extension/observer/ecsobserver/docker_label.go create mode 100644 extension/observer/ecsobserver/docker_label_test.go create mode 100644 extension/observer/ecsobserver/error.go create mode 100644 extension/observer/ecsobserver/error_test.go create mode 100644 extension/observer/ecsobserver/exporter.go create mode 100644 extension/observer/ecsobserver/exporter_test.go create mode 100644 extension/observer/ecsobserver/extension.go create mode 100644 extension/observer/ecsobserver/extension_test.go create mode 100644 extension/observer/ecsobserver/factory.go create mode 100644 extension/observer/ecsobserver/fetcher.go create mode 100644 extension/observer/ecsobserver/fetcher_test.go create mode 100644 extension/observer/ecsobserver/filter.go create mode 100644 extension/observer/ecsobserver/filter_test.go create mode 100644 extension/observer/ecsobserver/go.mod create mode 100644 extension/observer/ecsobserver/go.sum create mode 100644 extension/observer/ecsobserver/internal/ecsmock/doc.go create mode 100644 extension/observer/ecsobserver/internal/ecsmock/service.go create mode 100644 extension/observer/ecsobserver/internal/ecsmock/service_test.go create mode 100644 extension/observer/ecsobserver/internal/errctx/doc.go create mode 100644 extension/observer/ecsobserver/internal/errctx/value.go create mode 100644 extension/observer/ecsobserver/internal/errctx/value_test.go create mode 100644 extension/observer/ecsobserver/matcher.go create mode 100644 extension/observer/ecsobserver/matcher_test.go create mode 100644 extension/observer/ecsobserver/sd.go create mode 100644 extension/observer/ecsobserver/sd_test.go create mode 100644 extension/observer/ecsobserver/service.go create mode 100644 extension/observer/ecsobserver/service_test.go create mode 100644 extension/observer/ecsobserver/target.go create mode 100644 extension/observer/ecsobserver/target_test.go create mode 100644 extension/observer/ecsobserver/task.go create mode 100644 extension/observer/ecsobserver/task_definition.go create mode 100644 extension/observer/ecsobserver/task_definition_test.go create mode 100644 extension/observer/ecsobserver/task_test.go create mode 100644 extension/observer/ecsobserver/testdata/.gitignore create mode 100644 extension/observer/ecsobserver/testdata/config.yaml create mode 100644 extension/observer/ecsobserver/testdata/config_invalid.yaml create mode 100644 extension/observer/ecsobserver/testdata/ut_targets.expected.yaml create mode 100644 extension/observer/ecstaskobserver/Makefile create mode 100644 extension/observer/ecstaskobserver/README.md create mode 100644 extension/observer/ecstaskobserver/config.go create mode 100644 extension/observer/ecstaskobserver/config_test.go create mode 100644 extension/observer/ecstaskobserver/extension.go create mode 100644 extension/observer/ecstaskobserver/extension_test.go create mode 100644 extension/observer/ecstaskobserver/factory.go create mode 100644 extension/observer/ecstaskobserver/factory_test.go create mode 100644 extension/observer/ecstaskobserver/go.mod create mode 100644 extension/observer/ecstaskobserver/go.sum create mode 100644 extension/observer/ecstaskobserver/testdata/config.yaml create mode 100644 extension/observer/ecstaskobserver/testdata/invalid_endpoint_config.yaml create mode 100644 extension/observer/endpoints.go create mode 100644 extension/observer/endpoints_test.go create mode 100644 extension/observer/endpointswatcher.go create mode 100644 extension/observer/endpointswatcher_test.go create mode 100644 extension/observer/go.mod create mode 100644 extension/observer/go.sum create mode 100644 extension/observer/hostobserver/Makefile create mode 100644 extension/observer/hostobserver/README.md create mode 100644 extension/observer/hostobserver/config.go create mode 100644 extension/observer/hostobserver/config_test.go create mode 100644 extension/observer/hostobserver/extension.go create mode 100644 extension/observer/hostobserver/extension_test.go create mode 100644 extension/observer/hostobserver/factory.go create mode 100644 extension/observer/hostobserver/factory_test.go create mode 100644 extension/observer/hostobserver/go.mod create mode 100644 extension/observer/hostobserver/go.sum create mode 100644 extension/observer/hostobserver/testdata/config.yaml create mode 100644 extension/observer/k8sobserver/Makefile create mode 100644 extension/observer/k8sobserver/README.md create mode 100644 extension/observer/k8sobserver/config.go create mode 100644 extension/observer/k8sobserver/config_test.go create mode 100644 extension/observer/k8sobserver/doc.go create mode 100644 extension/observer/k8sobserver/extension.go create mode 100644 extension/observer/k8sobserver/extension_test.go create mode 100644 extension/observer/k8sobserver/factory.go create mode 100644 extension/observer/k8sobserver/factory_test.go create mode 100644 extension/observer/k8sobserver/go.mod create mode 100644 extension/observer/k8sobserver/go.sum create mode 100644 extension/observer/k8sobserver/handler.go create mode 100644 extension/observer/k8sobserver/handler_test.go create mode 100644 extension/observer/k8sobserver/k8s_fixtures_test.go create mode 100644 extension/observer/k8sobserver/mocks_test.go create mode 100644 extension/observer/k8sobserver/node_endpoint.go create mode 100644 extension/observer/k8sobserver/node_endpoint_test.go create mode 100644 extension/observer/k8sobserver/pod_endpoint.go create mode 100644 extension/observer/k8sobserver/pod_endpoint_test.go create mode 100644 extension/observer/k8sobserver/testdata/config.yaml create mode 100644 extension/observer/k8sobserver/testdata/invalid_auth.yaml create mode 100644 extension/observer/k8sobserver/testdata/invalid_no_observing.yaml create mode 100644 extension/observer/observer.go create mode 100644 extension/oidcauthextension/Makefile create mode 100644 extension/oidcauthextension/README.md create mode 100644 extension/oidcauthextension/authdata.go create mode 100644 extension/oidcauthextension/config.go create mode 100644 extension/oidcauthextension/extension.go create mode 100644 extension/oidcauthextension/extension_test.go create mode 100644 extension/oidcauthextension/factory.go create mode 100644 extension/oidcauthextension/factory_test.go create mode 100644 extension/oidcauthextension/go.mod create mode 100644 extension/oidcauthextension/go.sum create mode 100644 extension/oidcauthextension/oidc_server_test.go create mode 100644 extension/pprofextension/Makefile create mode 100644 extension/pprofextension/README.md create mode 100644 extension/pprofextension/config.go create mode 100644 extension/pprofextension/config_test.go create mode 100644 extension/pprofextension/doc.go create mode 100644 extension/pprofextension/factory.go create mode 100644 extension/pprofextension/factory_test.go create mode 100644 extension/pprofextension/go.mod create mode 100644 extension/pprofextension/go.sum create mode 100644 extension/pprofextension/pprofextension.go create mode 100644 extension/pprofextension/pprofextension_test.go create mode 100644 extension/pprofextension/testdata/config.yaml create mode 100644 extension/sigv4authextension/Makefile create mode 100644 extension/sigv4authextension/README.md create mode 100644 extension/sigv4authextension/config.go create mode 100644 extension/sigv4authextension/config_test.go create mode 100644 extension/sigv4authextension/design.md create mode 100644 extension/sigv4authextension/doc.go create mode 100644 extension/sigv4authextension/extension.go create mode 100644 extension/sigv4authextension/extension_test.go create mode 100644 extension/sigv4authextension/factory.go create mode 100644 extension/sigv4authextension/factory_test.go create mode 100644 extension/sigv4authextension/go.mod create mode 100644 extension/sigv4authextension/go.sum create mode 100644 extension/sigv4authextension/images/E2EDiagram.png create mode 100644 extension/sigv4authextension/images/Sigv4ComponentDiagram.png create mode 100644 extension/sigv4authextension/signingroundtripper.go create mode 100644 extension/sigv4authextension/signingroundtripper_test.go create mode 100644 extension/sigv4authextension/testdata/config.yaml create mode 100644 extension/sigv4authextension/testdata/config_bad.yaml create mode 100644 extension/storage/Makefile create mode 100644 extension/storage/dbstorage/README.md create mode 100644 extension/storage/dbstorage/client.go create mode 100644 extension/storage/dbstorage/config.go create mode 100644 extension/storage/dbstorage/config_test.go create mode 100644 extension/storage/dbstorage/extension.go create mode 100644 extension/storage/dbstorage/extension_test.go create mode 100644 extension/storage/dbstorage/factory.go create mode 100644 extension/storage/filestorage/README.md create mode 100644 extension/storage/filestorage/client.go create mode 100644 extension/storage/filestorage/client_test.go create mode 100644 extension/storage/filestorage/config.go create mode 100644 extension/storage/filestorage/config_test.go create mode 100644 extension/storage/filestorage/default_others.go create mode 100644 extension/storage/filestorage/default_windows.go create mode 100644 extension/storage/filestorage/extension.go create mode 100644 extension/storage/filestorage/extension_test.go create mode 100644 extension/storage/filestorage/factory.go create mode 100644 extension/storage/filestorage/factory_test.go create mode 100644 extension/storage/filestorage/testdata/config.yaml create mode 100644 extension/storage/go.mod create mode 100644 extension/storage/go.sum create mode 100644 extension/storage/storagetest/Makefile create mode 100644 extension/storage/storagetest/doc.go create mode 100644 extension/storage/storagetest/storage.go create mode 100644 extension/storage/storagetest/storage_test.go create mode 100644 go.mod create mode 100644 go.sum create mode 100644 internal/aws/awsutil/Makefile create mode 100644 internal/aws/awsutil/awsconfig.go create mode 100644 internal/aws/awsutil/awsconfig_test.go create mode 100644 internal/aws/awsutil/conn.go create mode 100644 internal/aws/awsutil/conn_test.go create mode 100644 internal/aws/awsutil/doc.go create mode 100644 internal/aws/awsutil/go.mod create mode 100644 internal/aws/awsutil/go.sum create mode 100644 internal/aws/containerinsight/Makefile create mode 100644 internal/aws/containerinsight/const.go create mode 100644 internal/aws/containerinsight/ecsconst.go create mode 100644 internal/aws/containerinsight/go.mod create mode 100644 internal/aws/containerinsight/go.sum create mode 100644 internal/aws/containerinsight/k8sconst.go create mode 100644 internal/aws/containerinsight/utils.go create mode 100644 internal/aws/containerinsight/utils_test.go create mode 100644 internal/aws/cwlogs/Makefile create mode 100644 internal/aws/cwlogs/cwlog_client.go create mode 100644 internal/aws/cwlogs/cwlog_client_test.go create mode 100644 internal/aws/cwlogs/go.mod create mode 100644 internal/aws/cwlogs/go.sum create mode 100644 internal/aws/cwlogs/handler/request_structuredlog_handler.go create mode 100644 internal/aws/cwlogs/handler/request_structuredlog_handler_test.go create mode 100644 internal/aws/cwlogs/pusher.go create mode 100644 internal/aws/cwlogs/pusher_test.go create mode 100644 internal/aws/ecsutil/Makefile create mode 100644 internal/aws/ecsutil/client.go create mode 100644 internal/aws/ecsutil/client_test.go create mode 100644 internal/aws/ecsutil/doc.go create mode 100644 internal/aws/ecsutil/ecsutiltest/testdata/container_metadata.json create mode 100644 internal/aws/ecsutil/ecsutiltest/testdata/task_metadata.json create mode 100644 internal/aws/ecsutil/ecsutiltest/testutil.go create mode 100644 internal/aws/ecsutil/endpoints/metadata.go create mode 100644 internal/aws/ecsutil/endpoints/metadata_test.go create mode 100644 internal/aws/ecsutil/go.mod create mode 100644 internal/aws/ecsutil/go.sum create mode 100644 internal/aws/ecsutil/metadata.go create mode 100644 internal/aws/ecsutil/metadata_provider.go create mode 100644 internal/aws/ecsutil/metadata_provider_test.go create mode 100644 internal/aws/ecsutil/rest_client.go create mode 100644 internal/aws/ecsutil/rest_client_test.go create mode 100644 internal/aws/k8s/Makefile create mode 100644 internal/aws/k8s/go.mod create mode 100644 internal/aws/k8s/go.sum create mode 100644 internal/aws/k8s/k8sclient/clientset.go create mode 100644 internal/aws/k8s/k8sclient/clientset_test.go create mode 100644 internal/aws/k8s/k8sclient/endpoint.go create mode 100644 internal/aws/k8s/k8sclient/endpoint_info.go create mode 100644 internal/aws/k8s/k8sclient/endpoint_test.go create mode 100644 internal/aws/k8s/k8sclient/helpers_test.go create mode 100644 internal/aws/k8s/k8sclient/job.go create mode 100644 internal/aws/k8s/k8sclient/job_info.go create mode 100644 internal/aws/k8s/k8sclient/job_test.go create mode 100644 internal/aws/k8s/k8sclient/node.go create mode 100644 internal/aws/k8s/k8sclient/node_info.go create mode 100644 internal/aws/k8s/k8sclient/node_test.go create mode 100644 internal/aws/k8s/k8sclient/obj_store.go create mode 100644 internal/aws/k8s/k8sclient/obj_store_test.go create mode 100644 internal/aws/k8s/k8sclient/pod.go create mode 100644 internal/aws/k8s/k8sclient/pod_info.go create mode 100644 internal/aws/k8s/k8sclient/pod_test.go create mode 100644 internal/aws/k8s/k8sclient/replicaset.go create mode 100644 internal/aws/k8s/k8sclient/replicaset_info.go create mode 100644 internal/aws/k8s/k8sclient/replicaset_test.go create mode 100644 internal/aws/k8s/k8sutil/util.go create mode 100644 internal/aws/k8s/k8sutil/util_test.go create mode 100644 internal/aws/metrics/Makefile create mode 100644 internal/aws/metrics/go.mod create mode 100644 internal/aws/metrics/go.sum create mode 100644 internal/aws/metrics/metric_calculator.go create mode 100644 internal/aws/metrics/metric_calculator_test.go create mode 100644 internal/aws/proxy/Makefile create mode 100644 internal/aws/proxy/cfg.go create mode 100644 internal/aws/proxy/conn.go create mode 100644 internal/aws/proxy/conn_test.go create mode 100644 internal/aws/proxy/go.mod create mode 100644 internal/aws/proxy/go.sum create mode 100644 internal/aws/proxy/server.go create mode 100644 internal/aws/proxy/server_test.go create mode 100644 internal/aws/proxy/testdata/ecsmetadatafile.txt create mode 100644 internal/aws/proxy/testdata/ecsmetadatafileInvalidArn.txt create mode 100644 internal/aws/proxy/testdata/ecsmetadatafileinvalid.txt create mode 100644 internal/aws/xray/Makefile create mode 100644 internal/aws/xray/awsxray.go create mode 100644 internal/aws/xray/go.mod create mode 100644 internal/aws/xray/go.sum create mode 100644 internal/aws/xray/testdata/README.md create mode 100644 internal/aws/xray/testdata/awsMissingAwsField.txt create mode 100644 internal/aws/xray/testdata/awsValidAwsFields.txt create mode 100644 internal/aws/xray/testdata/ddbSample.txt create mode 100644 internal/aws/xray/testdata/indepSubsegment.txt create mode 100644 internal/aws/xray/testdata/indepSubsegmentWithContentLengthString.txt create mode 100644 internal/aws/xray/testdata/indepSubsegmentWithInvalidSqlUrl.txt create mode 100644 internal/aws/xray/testdata/indepSubsegmentWithSql.txt create mode 100644 internal/aws/xray/testdata/invalidNamespace.txt create mode 100644 internal/aws/xray/testdata/minCauseIsExceptionId.txt create mode 100644 internal/aws/xray/testdata/minCauseIsInvalid.txt create mode 100644 internal/aws/xray/testdata/minInProgress.txt create mode 100644 internal/aws/xray/testdata/minOtherFields.txt create mode 100644 internal/aws/xray/testdata/sampleapp/Makefile create mode 100644 internal/aws/xray/testdata/sampleapp/go.mod create mode 100644 internal/aws/xray/testdata/sampleapp/go.sum create mode 100644 internal/aws/xray/testdata/sampleapp/sample.go create mode 100644 internal/aws/xray/testdata/sampleserver/Makefile create mode 100644 internal/aws/xray/testdata/sampleserver/go.mod create mode 100644 internal/aws/xray/testdata/sampleserver/go.sum create mode 100644 internal/aws/xray/testdata/sampleserver/sample.go create mode 100644 internal/aws/xray/testdata/segmentValidationFailed.txt create mode 100644 internal/aws/xray/testdata/serverSample.txt create mode 100644 internal/aws/xray/tracesegment.go create mode 100644 internal/aws/xray/tracesegment_test.go create mode 100644 internal/aws/xray/util.go create mode 100644 internal/aws/xray/util_test.go create mode 100755 internal/buildscripts/gen-certs.sh create mode 100644 internal/buildscripts/packaging/fpm/Dockerfile create mode 100644 internal/buildscripts/packaging/fpm/common.sh create mode 100644 internal/buildscripts/packaging/fpm/deb/Dockerfile.test create mode 100644 internal/buildscripts/packaging/fpm/deb/README.md create mode 100755 internal/buildscripts/packaging/fpm/deb/build.sh create mode 100644 internal/buildscripts/packaging/fpm/otel-contrib-collector.conf create mode 100644 internal/buildscripts/packaging/fpm/otel-contrib-collector.service create mode 100644 internal/buildscripts/packaging/fpm/postinstall.sh create mode 100644 internal/buildscripts/packaging/fpm/preinstall.sh create mode 100644 internal/buildscripts/packaging/fpm/preuninstall.sh create mode 100644 internal/buildscripts/packaging/fpm/rpm/Dockerfile.test create mode 100644 internal/buildscripts/packaging/fpm/rpm/README.md create mode 100755 internal/buildscripts/packaging/fpm/rpm/build.sh create mode 100755 internal/buildscripts/packaging/fpm/test.sh create mode 100644 internal/buildscripts/packaging/msi/make.ps1 create mode 100644 internal/buildscripts/packaging/msi/opentelemetry-contrib-collector.wxs create mode 100644 internal/buildscripts/packaging/msi/opentelemetry.ico create mode 100755 internal/buildscripts/update-dep create mode 100644 internal/common/Makefile create mode 100644 internal/common/docker/images.go create mode 100644 internal/common/docker/images_test.go create mode 100644 internal/common/go.mod create mode 100644 internal/common/go.sum create mode 100644 internal/common/maps/maps.go create mode 100644 internal/common/maps/maps_test.go create mode 100644 internal/common/sanitize/url.go create mode 100644 internal/common/sanitize/url_test.go create mode 100644 internal/common/testutil/testutil.go create mode 100644 internal/common/testutil/testutil_test.go create mode 100644 internal/common/ttlmap/ttl_map.go create mode 100644 internal/common/ttlmap/ttl_map_test.go create mode 100644 internal/components/components.go create mode 100644 internal/components/components_test.go create mode 100644 internal/components/exporters_test.go create mode 100644 internal/components/extensions_test.go create mode 100644 internal/components/processors_test.go create mode 100644 internal/components/receivers_test.go create mode 100644 internal/components/unstable_components_disabled.go create mode 100644 internal/components/unstable_components_enabled.go create mode 100644 internal/containertest/Makefile create mode 100644 internal/containertest/container.go create mode 100644 internal/containertest/container_integration_test.go create mode 100644 internal/containertest/go.mod create mode 100644 internal/containertest/go.sum create mode 100644 internal/coreinternal/Makefile create mode 100644 internal/coreinternal/attraction/attraction.go create mode 100644 internal/coreinternal/attraction/attraction_test.go create mode 100644 internal/coreinternal/attraction/hasher.go create mode 100644 internal/coreinternal/attraction/type_converter.go create mode 100644 internal/coreinternal/go.mod create mode 100644 internal/coreinternal/go.sum create mode 100644 internal/coreinternal/goldendataset/generator_commons.go create mode 100644 internal/coreinternal/goldendataset/metrics_gen.go create mode 100644 internal/coreinternal/goldendataset/metrics_gen_test.go create mode 100644 internal/coreinternal/goldendataset/pict_metrics_gen.go create mode 100644 internal/coreinternal/goldendataset/pict_metrics_gen_test.go create mode 100644 internal/coreinternal/goldendataset/pict_metrics_input_defs.go create mode 100644 internal/coreinternal/goldendataset/pict_tracing_input_defs.go create mode 100644 internal/coreinternal/goldendataset/resource_generator.go create mode 100644 internal/coreinternal/goldendataset/resource_generator_test.go create mode 100644 internal/coreinternal/goldendataset/span_generator.go create mode 100644 internal/coreinternal/goldendataset/span_generator_test.go create mode 100644 internal/coreinternal/goldendataset/testdata/generated_pict_pairs_metrics.txt create mode 100644 internal/coreinternal/goldendataset/testdata/generated_pict_pairs_spans.txt create mode 100644 internal/coreinternal/goldendataset/testdata/generated_pict_pairs_traces.txt create mode 100644 internal/coreinternal/goldendataset/testdata/pict_input_metrics.txt create mode 100644 internal/coreinternal/goldendataset/testdata/pict_input_spans.txt create mode 100644 internal/coreinternal/goldendataset/testdata/pict_input_traces.txt create mode 100644 internal/coreinternal/goldendataset/traces_generator.go create mode 100644 internal/coreinternal/goldendataset/traces_generator_test.go create mode 100644 internal/coreinternal/idutils/big_endian_converter.go create mode 100644 internal/coreinternal/idutils/big_endian_converter_test.go create mode 100644 internal/coreinternal/idutils/doc.go create mode 100644 internal/coreinternal/metricstestutil/metricsutil.go create mode 100644 internal/coreinternal/metricstestutil/metricsutil_test.go create mode 100644 internal/coreinternal/occonventions/opencensus.go create mode 100644 internal/coreinternal/processor/filterconfig/config.go create mode 100644 internal/coreinternal/processor/filterconfig/config_test.go create mode 100644 internal/coreinternal/processor/filterexpr/matcher.go create mode 100644 internal/coreinternal/processor/filterexpr/matcher_test.go create mode 100644 internal/coreinternal/processor/filterhelper/filterhelper.go create mode 100644 internal/coreinternal/processor/filterhelper/filterhelper_test.go create mode 100644 internal/coreinternal/processor/filterlog/filterlog.go create mode 100644 internal/coreinternal/processor/filterlog/filterlog_test.go create mode 100644 internal/coreinternal/processor/filtermatcher/attributematcher.go create mode 100644 internal/coreinternal/processor/filtermatcher/filtermatcher.go create mode 100644 internal/coreinternal/processor/filtermatcher/filtermatcher_test.go create mode 100644 internal/coreinternal/processor/filtermetric/config.go create mode 100644 internal/coreinternal/processor/filtermetric/config_test.go create mode 100644 internal/coreinternal/processor/filtermetric/doc.go create mode 100644 internal/coreinternal/processor/filtermetric/expr_matcher.go create mode 100644 internal/coreinternal/processor/filtermetric/filtermetric.go create mode 100644 internal/coreinternal/processor/filtermetric/filtermetric_test.go create mode 100644 internal/coreinternal/processor/filtermetric/helpers_test.go create mode 100644 internal/coreinternal/processor/filtermetric/name_matcher.go create mode 100644 internal/coreinternal/processor/filtermetric/testdata/config.yaml create mode 100644 internal/coreinternal/processor/filterset/config.go create mode 100644 internal/coreinternal/processor/filterset/config_test.go create mode 100644 internal/coreinternal/processor/filterset/doc.go create mode 100644 internal/coreinternal/processor/filterset/filterset.go create mode 100644 internal/coreinternal/processor/filterset/regexp/config.go create mode 100644 internal/coreinternal/processor/filterset/regexp/config_test.go create mode 100644 internal/coreinternal/processor/filterset/regexp/doc.go create mode 100644 internal/coreinternal/processor/filterset/regexp/regexpfilterset.go create mode 100644 internal/coreinternal/processor/filterset/regexp/regexpfilterset_test.go create mode 100644 internal/coreinternal/processor/filterset/regexp/testdata/config.yaml create mode 100644 internal/coreinternal/processor/filterset/strict/doc.go create mode 100644 internal/coreinternal/processor/filterset/strict/strictfilterset.go create mode 100644 internal/coreinternal/processor/filterset/strict/strictfilterset_test.go create mode 100644 internal/coreinternal/processor/filterset/testdata/config.yaml create mode 100644 internal/coreinternal/processor/filterset/testdata/config_invalid.yaml create mode 100644 internal/coreinternal/processor/filterspan/filterspan.go create mode 100644 internal/coreinternal/processor/filterspan/filterspan_test.go create mode 100644 internal/coreinternal/testdata/common.go create mode 100644 internal/coreinternal/testdata/log.go create mode 100644 internal/coreinternal/testdata/metric.go create mode 100644 internal/coreinternal/testdata/resource.go create mode 100644 internal/coreinternal/testdata/trace.go create mode 100644 internal/coreinternal/timeutils/doc.go create mode 100644 internal/coreinternal/timeutils/ticker_helper.go create mode 100644 internal/coreinternal/timeutils/ticker_test.go create mode 100644 internal/coreinternal/tracetranslator/protospan_translation.go create mode 100644 internal/docker/Makefile create mode 100644 internal/docker/config.go create mode 100644 internal/docker/docker.go create mode 100644 internal/docker/docker_test.go create mode 100644 internal/docker/go.mod create mode 100644 internal/docker/go.sum create mode 100644 internal/docker/matcher.go create mode 100644 internal/docker/matcher_test.go create mode 100644 internal/k8sconfig/Makefile create mode 100644 internal/k8sconfig/config.go create mode 100644 internal/k8sconfig/go.mod create mode 100644 internal/k8sconfig/go.sum create mode 100644 internal/kubelet/Makefile create mode 100644 internal/kubelet/cert.go create mode 100644 internal/kubelet/client.go create mode 100644 internal/kubelet/client_config.go create mode 100644 internal/kubelet/client_test.go create mode 100644 internal/kubelet/go.mod create mode 100644 internal/kubelet/go.sum create mode 100644 internal/kubelet/testdata/testcert.crt create mode 100644 internal/kubelet/testdata/testkey.key create mode 100644 internal/kubelet/testdata/token create mode 100644 internal/scrapertest/Makefile create mode 100644 internal/scrapertest/compare.go create mode 100644 internal/scrapertest/compare_test.go create mode 100644 internal/scrapertest/go.mod create mode 100644 internal/scrapertest/go.sum create mode 100644 internal/scrapertest/golden/golden.go create mode 100644 internal/scrapertest/golden/golden_test.go create mode 100644 internal/scrapertest/golden/testdata/roundtrip/expected.json create mode 100644 internal/scrapertest/mask.go create mode 100644 internal/scrapertest/testdata/data-point-aggregation-expect-cumulative/actual.json create mode 100644 internal/scrapertest/testdata/data-point-aggregation-expect-cumulative/expected.json create mode 100644 internal/scrapertest/testdata/data-point-aggregation-expect-delta/actual.json create mode 100644 internal/scrapertest/testdata/data-point-aggregation-expect-delta/expected.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-extra/actual.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-extra/expected.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-key/actual.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-key/expected.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-missing/actual.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-missing/expected.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-value/actual.json create mode 100644 internal/scrapertest/testdata/data-point-attribute-value/expected.json create mode 100644 internal/scrapertest/testdata/data-point-monotonic-expect-false/actual.json create mode 100644 internal/scrapertest/testdata/data-point-monotonic-expect-false/expected.json create mode 100644 internal/scrapertest/testdata/data-point-monotonic-expect-true/actual.json create mode 100644 internal/scrapertest/testdata/data-point-monotonic-expect-true/expected.json create mode 100644 internal/scrapertest/testdata/data-point-slice-dedup/actual.json create mode 100644 internal/scrapertest/testdata/data-point-slice-dedup/expected.json create mode 100644 internal/scrapertest/testdata/data-point-slice-extra/actual.json create mode 100644 internal/scrapertest/testdata/data-point-slice-extra/expected.json create mode 100644 internal/scrapertest/testdata/data-point-slice-missing/actual.json create mode 100644 internal/scrapertest/testdata/data-point-slice-missing/expected.json create mode 100644 internal/scrapertest/testdata/data-point-value-double-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/data-point-value-double-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/data-point-value-expect-double/actual.json create mode 100644 internal/scrapertest/testdata/data-point-value-expect-double/expected.json create mode 100644 internal/scrapertest/testdata/data-point-value-expect-int/actual.json create mode 100644 internal/scrapertest/testdata/data-point-value-expect-int/expected.json create mode 100644 internal/scrapertest/testdata/data-point-value-int-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/data-point-value-int-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/equal/actual.json create mode 100644 internal/scrapertest/testdata/equal/expected.json create mode 100644 internal/scrapertest/testdata/ignore-attribute-set-collision-order/actual.json create mode 100644 internal/scrapertest/testdata/ignore-attribute-set-collision-order/expected.json create mode 100644 internal/scrapertest/testdata/ignore-attribute-set-collision/actual.json create mode 100644 internal/scrapertest/testdata/ignore-attribute-set-collision/expected.json create mode 100644 internal/scrapertest/testdata/ignore-data-point-value-double-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/ignore-data-point-value-double-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/ignore-data-point-value-int-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/ignore-data-point-value-int-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/ignore-each-attribute-value/actual.json create mode 100644 internal/scrapertest/testdata/ignore-each-attribute-value/expected.json create mode 100644 internal/scrapertest/testdata/ignore-global-attribute-value/actual.json create mode 100644 internal/scrapertest/testdata/ignore-global-attribute-value/expected.json create mode 100644 internal/scrapertest/testdata/ignore-one-attribute-value/actual.json create mode 100644 internal/scrapertest/testdata/ignore-one-attribute-value/expected.json create mode 100644 internal/scrapertest/testdata/ignore-timestamp/actual.json create mode 100644 internal/scrapertest/testdata/ignore-timestamp/expected.json create mode 100644 internal/scrapertest/testdata/metric-description-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/metric-description-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/metric-name-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/metric-name-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/metric-slice-extra/actual.json create mode 100644 internal/scrapertest/testdata/metric-slice-extra/expected.json create mode 100644 internal/scrapertest/testdata/metric-slice-missing/actual.json create mode 100644 internal/scrapertest/testdata/metric-slice-missing/expected.json create mode 100644 internal/scrapertest/testdata/metric-type-expect-gauge/actual.json create mode 100644 internal/scrapertest/testdata/metric-type-expect-gauge/expected.json create mode 100644 internal/scrapertest/testdata/metric-type-expect-sum/actual.json create mode 100644 internal/scrapertest/testdata/metric-type-expect-sum/expected.json create mode 100644 internal/scrapertest/testdata/metric-unit-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/metric-unit-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/resource-attributes-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/resource-attributes-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/resource-extra/actual.json create mode 100644 internal/scrapertest/testdata/resource-extra/expected.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-extra/actual.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-extra/expected.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-missing/actual.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-missing/expected.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-name-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-name-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-version-mismatch/actual.json create mode 100644 internal/scrapertest/testdata/resource-instrumentation-library-version-mismatch/expected.json create mode 100644 internal/scrapertest/testdata/resource-missing/actual.json create mode 100644 internal/scrapertest/testdata/resource-missing/expected.json create mode 100644 internal/scrapertest/util.go create mode 100644 internal/sharedcomponent/Makefile create mode 100644 internal/sharedcomponent/go.mod create mode 100644 internal/sharedcomponent/go.sum create mode 100644 internal/sharedcomponent/sharedcomponent.go create mode 100644 internal/sharedcomponent/sharedcomponent_test.go create mode 100644 internal/splunk/Makefile create mode 100644 internal/splunk/common.go create mode 100644 internal/splunk/common_test.go create mode 100644 internal/splunk/go.mod create mode 100644 internal/splunk/go.sum create mode 100644 internal/splunk/hostid.go create mode 100644 internal/splunk/hostid_test.go create mode 100644 internal/splunk/httprequest.go create mode 100644 internal/splunk/httprequest_test.go create mode 100644 internal/stanza/Makefile create mode 100644 internal/stanza/config.go create mode 100644 internal/stanza/converter.go create mode 100644 internal/stanza/converter_test.go create mode 100644 internal/stanza/emitter.go create mode 100644 internal/stanza/emitter_test.go create mode 100644 internal/stanza/factory.go create mode 100644 internal/stanza/factory_test.go create mode 100644 internal/stanza/go.mod create mode 100644 internal/stanza/go.sum create mode 100644 internal/stanza/integration_test.go create mode 100644 internal/stanza/mocks_test.go create mode 100644 internal/stanza/receiver.go create mode 100644 internal/stanza/receiver_test.go create mode 100644 internal/stanza/register.go create mode 100644 internal/stanza/storage.go create mode 100644 internal/stanza/storage_test.go create mode 100644 internal/tools/Makefile create mode 100644 internal/tools/empty_test.go create mode 100644 internal/tools/go.mod create mode 100644 internal/tools/go.sum create mode 100644 internal/tools/tools.go create mode 100644 internal/version/version.go create mode 100644 internal/version/version_test.go create mode 100644 pkg/batchperresourceattr/Makefile create mode 100644 pkg/batchperresourceattr/batchperresourceattr.go create mode 100644 pkg/batchperresourceattr/batchperresourceattr_test.go create mode 100644 pkg/batchperresourceattr/go.mod create mode 100644 pkg/batchperresourceattr/go.sum create mode 100644 pkg/batchpersignal/Makefile create mode 100644 pkg/batchpersignal/batchpersignal.go create mode 100644 pkg/batchpersignal/batchpersignal_test.go create mode 100644 pkg/batchpersignal/go.mod create mode 100644 pkg/batchpersignal/go.sum create mode 100644 pkg/experimentalmetricmetadata/Makefile create mode 100644 pkg/experimentalmetricmetadata/README.md create mode 100644 pkg/experimentalmetricmetadata/go.mod create mode 100644 pkg/experimentalmetricmetadata/go.sum create mode 100644 pkg/experimentalmetricmetadata/metadata.go create mode 100644 pkg/experimentalmetricmetadata/metadata_test.go create mode 100644 pkg/resourcetotelemetry/Makefile create mode 100644 pkg/resourcetotelemetry/README.md create mode 100644 pkg/resourcetotelemetry/go.mod create mode 100644 pkg/resourcetotelemetry/go.sum create mode 100644 pkg/resourcetotelemetry/resource_to_telemetry.go create mode 100644 pkg/resourcetotelemetry/resource_to_telemetry_test.go create mode 100644 pkg/translator/jaeger/Makefile create mode 100644 pkg/translator/jaeger/constants.go create mode 100644 pkg/translator/jaeger/go.mod create mode 100644 pkg/translator/jaeger/go.sum create mode 100644 pkg/translator/jaeger/jaegerproto_to_traces.go create mode 100644 pkg/translator/jaeger/jaegerproto_to_traces_test.go create mode 100644 pkg/translator/jaeger/jaegerthrift_to_traces.go create mode 100644 pkg/translator/jaeger/jaegerthrift_to_traces_test.go create mode 100644 pkg/translator/jaeger/testdata/jaegerproto_batch_01.json create mode 100644 pkg/translator/jaeger/testdata/jaegerproto_batch_02.json create mode 100644 pkg/translator/jaeger/testdata/ocproto_batch_01.json create mode 100644 pkg/translator/jaeger/testdata/ocproto_batch_02.json create mode 100644 pkg/translator/jaeger/testdata/proto_batch_no_binary_tags_01.json create mode 100644 pkg/translator/jaeger/testdata/proto_batch_no_binary_tags_02.json create mode 100644 pkg/translator/jaeger/testdata/thrift_batch_01.json create mode 100644 pkg/translator/jaeger/testdata/thrift_batch_02.json create mode 100644 pkg/translator/jaeger/traces_to_jaegerproto.go create mode 100644 pkg/translator/jaeger/traces_to_jaegerproto_test.go create mode 100644 pkg/translator/opencensus/Makefile create mode 100644 pkg/translator/opencensus/go.mod create mode 100644 pkg/translator/opencensus/go.sum create mode 100644 pkg/translator/opencensus/metrics_to_oc.go create mode 100644 pkg/translator/opencensus/metrics_to_oc_test.go create mode 100644 pkg/translator/opencensus/oc_testdata_test.go create mode 100644 pkg/translator/opencensus/oc_to_metrics.go create mode 100644 pkg/translator/opencensus/oc_to_metrics_test.go create mode 100644 pkg/translator/opencensus/oc_to_resource.go create mode 100644 pkg/translator/opencensus/oc_to_resource_test.go create mode 100644 pkg/translator/opencensus/oc_to_traces.go create mode 100644 pkg/translator/opencensus/oc_to_traces_test.go create mode 100644 pkg/translator/opencensus/resource_to_oc.go create mode 100644 pkg/translator/opencensus/resource_to_oc_test.go create mode 100644 pkg/translator/opencensus/timestamp.go create mode 100644 pkg/translator/opencensus/traces_to_oc.go create mode 100644 pkg/translator/opencensus/traces_to_oc_test.go create mode 100644 pkg/translator/prometheusremotewrite/Makefile create mode 100644 pkg/translator/prometheusremotewrite/go.mod create mode 100644 pkg/translator/prometheusremotewrite/go.sum create mode 100644 pkg/translator/prometheusremotewrite/helper.go create mode 100644 pkg/translator/prometheusremotewrite/helper_test.go create mode 100644 pkg/translator/prometheusremotewrite/metrics_to_prw.go create mode 100644 pkg/translator/prometheusremotewrite/testutils_test.go create mode 100644 pkg/translator/signalfx/Makefile create mode 100644 pkg/translator/signalfx/from_metrics.go create mode 100644 pkg/translator/signalfx/from_metrics_test.go create mode 100644 pkg/translator/signalfx/go.mod create mode 100644 pkg/translator/signalfx/go.sum create mode 100644 pkg/translator/signalfx/timestamp.go create mode 100644 pkg/translator/signalfx/to_metrics.go create mode 100644 pkg/translator/signalfx/to_metrics_test.go create mode 100644 pkg/translator/zipkin/Makefile create mode 100644 pkg/translator/zipkin/go.mod create mode 100644 pkg/translator/zipkin/go.sum create mode 100644 pkg/translator/zipkin/internal/zipkin/attributes.go create mode 100644 pkg/translator/zipkin/zipkinv1/consumerdata.go create mode 100644 pkg/translator/zipkin/zipkinv1/grpc_http_mapper.go create mode 100644 pkg/translator/zipkin/zipkinv1/grpc_http_mapper_test.go create mode 100644 pkg/translator/zipkin/zipkinv1/json.go create mode 100644 pkg/translator/zipkin/zipkinv1/json_test.go create mode 100644 pkg/translator/zipkin/zipkinv1/status_code.go create mode 100644 pkg/translator/zipkin/zipkinv1/status_code_test.go create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_error_batch.json create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_local_component.json create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_multiple_batches.json create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_single_batch.json create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_thrift_local_component.json create mode 100644 pkg/translator/zipkin/zipkinv1/testdata/zipkin_v1_thrift_single_batch.json create mode 100644 pkg/translator/zipkin/zipkinv1/thrift.go create mode 100644 pkg/translator/zipkin/zipkinv1/thrift_test.go create mode 100644 pkg/translator/zipkin/zipkinv1/to_translator.go create mode 100644 pkg/translator/zipkin/zipkinv2/from_translator.go create mode 100644 pkg/translator/zipkin/zipkinv2/from_translator_test.go create mode 100644 pkg/translator/zipkin/zipkinv2/json.go create mode 100644 pkg/translator/zipkin/zipkinv2/json_test.go create mode 100644 pkg/translator/zipkin/zipkinv2/marshaler.go create mode 100644 pkg/translator/zipkin/zipkinv2/protobuf.go create mode 100644 pkg/translator/zipkin/zipkinv2/protobuf_test.go create mode 100644 pkg/translator/zipkin/zipkinv2/testdata/zipkin_v2_notimestamp.json create mode 100644 pkg/translator/zipkin/zipkinv2/testdata/zipkin_v2_single.json create mode 100644 pkg/translator/zipkin/zipkinv2/to_translator.go create mode 100644 pkg/translator/zipkin/zipkinv2/to_translator_test.go create mode 100644 pkg/winperfcounters/Makefile create mode 100644 pkg/winperfcounters/config.go create mode 100644 pkg/winperfcounters/config_windows.go create mode 100644 pkg/winperfcounters/go.mod create mode 100644 pkg/winperfcounters/go.sum create mode 100644 pkg/winperfcounters/internal/pdh/pdh.go create mode 100644 pkg/winperfcounters/internal/pdh/pdh_notwindows.go create mode 100644 pkg/winperfcounters/internal/pdh/pdh_test.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/LICENSE create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/kernel32.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/pdh.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/pdh_386.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/pdh_amd64.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/performance_query.go create mode 100644 pkg/winperfcounters/internal/third_party/telegraf/win_perf_counters/win_perf_counters_notwindows.go create mode 100644 pkg/winperfcounters/watcher.go create mode 100644 pkg/winperfcounters/watcher_test.go create mode 100644 processor/attributesprocessor/Makefile create mode 100644 processor/attributesprocessor/README.md create mode 100644 processor/attributesprocessor/attributes_log.go create mode 100644 processor/attributesprocessor/attributes_log_test.go create mode 100644 processor/attributesprocessor/attributes_metric.go create mode 100644 processor/attributesprocessor/attributes_metric_test.go create mode 100644 processor/attributesprocessor/attributes_trace.go create mode 100644 processor/attributesprocessor/attributes_trace_test.go create mode 100644 processor/attributesprocessor/config.go create mode 100644 processor/attributesprocessor/config_test.go create mode 100644 processor/attributesprocessor/doc.go create mode 100644 processor/attributesprocessor/factory.go create mode 100644 processor/attributesprocessor/factory_test.go create mode 100644 processor/attributesprocessor/go.mod create mode 100644 processor/attributesprocessor/go.sum create mode 100644 processor/attributesprocessor/testdata/config.yaml create mode 100644 processor/cumulativetodeltaprocessor/Makefile create mode 100644 processor/cumulativetodeltaprocessor/README.md create mode 100644 processor/cumulativetodeltaprocessor/config.go create mode 100644 processor/cumulativetodeltaprocessor/config_test.go create mode 100644 processor/cumulativetodeltaprocessor/doc.go create mode 100644 processor/cumulativetodeltaprocessor/factory.go create mode 100644 processor/cumulativetodeltaprocessor/factory_test.go create mode 100644 processor/cumulativetodeltaprocessor/go.mod create mode 100644 processor/cumulativetodeltaprocessor/go.sum create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/identity.go create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/identity_test.go create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/metric.go create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/tracker.go create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/tracker_test.go create mode 100644 processor/cumulativetodeltaprocessor/internal/tracking/value.go create mode 100644 processor/cumulativetodeltaprocessor/processor.go create mode 100644 processor/cumulativetodeltaprocessor/processor_test.go create mode 100644 processor/cumulativetodeltaprocessor/testdata/config.yaml create mode 100644 processor/cumulativetodeltaprocessor/testdata/config_missing_name.yaml create mode 100644 processor/deltatorateprocessor/Makefile create mode 100644 processor/deltatorateprocessor/README.md create mode 100644 processor/deltatorateprocessor/config.go create mode 100644 processor/deltatorateprocessor/config_test.go create mode 100644 processor/deltatorateprocessor/doc.go create mode 100644 processor/deltatorateprocessor/factory.go create mode 100644 processor/deltatorateprocessor/factory_test.go create mode 100644 processor/deltatorateprocessor/go.mod create mode 100644 processor/deltatorateprocessor/go.sum create mode 100644 processor/deltatorateprocessor/processor.go create mode 100644 processor/deltatorateprocessor/processor_test.go create mode 100644 processor/deltatorateprocessor/testdata/config_full.yaml create mode 100644 processor/deltatorateprocessor/testdata/config_missing_name.yaml create mode 100644 processor/filterprocessor/Makefile create mode 100644 processor/filterprocessor/README.md create mode 100644 processor/filterprocessor/config.go create mode 100644 processor/filterprocessor/config_test.go create mode 100644 processor/filterprocessor/doc.go create mode 100644 processor/filterprocessor/expr_test.go create mode 100644 processor/filterprocessor/factory.go create mode 100644 processor/filterprocessor/factory_test.go create mode 100644 processor/filterprocessor/filter_processor.go create mode 100644 processor/filterprocessor/filter_processor_logs.go create mode 100644 processor/filterprocessor/filter_processor_logs_test.go create mode 100644 processor/filterprocessor/filter_processor_test.go create mode 100644 processor/filterprocessor/go.mod create mode 100644 processor/filterprocessor/go.sum create mode 100644 processor/filterprocessor/testdata/config_expr.yaml create mode 100644 processor/filterprocessor/testdata/config_invalid.yaml create mode 100644 processor/filterprocessor/testdata/config_logs_record_attributes_regexp.yaml create mode 100644 processor/filterprocessor/testdata/config_logs_record_attributes_strict.yaml create mode 100644 processor/filterprocessor/testdata/config_logs_regexp.yaml create mode 100644 processor/filterprocessor/testdata/config_logs_strict.yaml create mode 100644 processor/filterprocessor/testdata/config_regexp.yaml create mode 100644 processor/filterprocessor/testdata/config_strict.yaml create mode 100644 processor/groupbyattrsprocessor/Makefile create mode 100644 processor/groupbyattrsprocessor/README.md create mode 100644 processor/groupbyattrsprocessor/attribute_groups.go create mode 100644 processor/groupbyattrsprocessor/attribute_groups_test.go create mode 100644 processor/groupbyattrsprocessor/config.go create mode 100644 processor/groupbyattrsprocessor/config_test.go create mode 100644 processor/groupbyattrsprocessor/doc.go create mode 100644 processor/groupbyattrsprocessor/factory.go create mode 100644 processor/groupbyattrsprocessor/factory_test.go create mode 100644 processor/groupbyattrsprocessor/go.mod create mode 100644 processor/groupbyattrsprocessor/go.sum create mode 100644 processor/groupbyattrsprocessor/metrics.go create mode 100644 processor/groupbyattrsprocessor/metrics_test.go create mode 100644 processor/groupbyattrsprocessor/processor.go create mode 100644 processor/groupbyattrsprocessor/processor_test.go create mode 100644 processor/groupbyattrsprocessor/testdata/config.yaml create mode 100644 processor/groupbytraceprocessor/Makefile create mode 100644 processor/groupbytraceprocessor/README.md create mode 100644 processor/groupbytraceprocessor/config.go create mode 100644 processor/groupbytraceprocessor/doc.go create mode 100644 processor/groupbytraceprocessor/event.go create mode 100644 processor/groupbytraceprocessor/event_test.go create mode 100644 processor/groupbytraceprocessor/factory.go create mode 100644 processor/groupbytraceprocessor/factory_test.go create mode 100644 processor/groupbytraceprocessor/go.mod create mode 100644 processor/groupbytraceprocessor/go.sum create mode 100644 processor/groupbytraceprocessor/metrics.go create mode 100644 processor/groupbytraceprocessor/metrics_test.go create mode 100644 processor/groupbytraceprocessor/processor.go create mode 100644 processor/groupbytraceprocessor/processor_test.go create mode 100644 processor/groupbytraceprocessor/ring_buffer.go create mode 100644 processor/groupbytraceprocessor/ring_buffer_test.go create mode 100644 processor/groupbytraceprocessor/storage.go create mode 100644 processor/groupbytraceprocessor/storage_memory.go create mode 100644 processor/groupbytraceprocessor/storage_memory_test.go create mode 100644 processor/groupbytraceprocessor/testdata/config.yaml create mode 100644 processor/k8sattributesprocessor/Makefile create mode 100644 processor/k8sattributesprocessor/README.md create mode 100644 processor/k8sattributesprocessor/client_test.go create mode 100644 processor/k8sattributesprocessor/config.go create mode 100644 processor/k8sattributesprocessor/config_test.go create mode 100644 processor/k8sattributesprocessor/doc.go create mode 100644 processor/k8sattributesprocessor/factory.go create mode 100644 processor/k8sattributesprocessor/factory_test.go create mode 100644 processor/k8sattributesprocessor/go.mod create mode 100644 processor/k8sattributesprocessor/go.sum create mode 100644 processor/k8sattributesprocessor/internal/kube/client.go create mode 100644 processor/k8sattributesprocessor/internal/kube/client_test.go create mode 100644 processor/k8sattributesprocessor/internal/kube/fake_informer.go create mode 100644 processor/k8sattributesprocessor/internal/kube/informer.go create mode 100644 processor/k8sattributesprocessor/internal/kube/informer_test.go create mode 100644 processor/k8sattributesprocessor/internal/kube/kube.go create mode 100644 processor/k8sattributesprocessor/internal/observability/empty_test.go create mode 100644 processor/k8sattributesprocessor/internal/observability/observability.go create mode 100644 processor/k8sattributesprocessor/internal/observability/observability_test.go create mode 100644 processor/k8sattributesprocessor/options.go create mode 100644 processor/k8sattributesprocessor/options_test.go create mode 100644 processor/k8sattributesprocessor/pod_association.go create mode 100644 processor/k8sattributesprocessor/processor.go create mode 100644 processor/k8sattributesprocessor/processor_test.go create mode 100644 processor/k8sattributesprocessor/testdata/config.yaml create mode 100644 processor/metricsgenerationprocessor/Makefile create mode 100644 processor/metricsgenerationprocessor/README.md create mode 100644 processor/metricsgenerationprocessor/config.go create mode 100644 processor/metricsgenerationprocessor/config_test.go create mode 100644 processor/metricsgenerationprocessor/doc.go create mode 100644 processor/metricsgenerationprocessor/factory.go create mode 100644 processor/metricsgenerationprocessor/factory_test.go create mode 100644 processor/metricsgenerationprocessor/go.mod create mode 100644 processor/metricsgenerationprocessor/go.sum create mode 100644 processor/metricsgenerationprocessor/processor.go create mode 100644 processor/metricsgenerationprocessor/processor_test.go create mode 100644 processor/metricsgenerationprocessor/testdata/config_full.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_invalid_generation_type.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_invalid_operation.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_missing_new_metric.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_missing_operand1.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_missing_operand2.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_missing_scale_by.yaml create mode 100644 processor/metricsgenerationprocessor/testdata/config_missing_type.yaml create mode 100644 processor/metricsgenerationprocessor/utils.go create mode 100644 processor/metricsgenerationprocessor/utils_test.go create mode 100644 processor/metricstransformprocessor/Makefile create mode 100644 processor/metricstransformprocessor/README.md create mode 100644 processor/metricstransformprocessor/config.go create mode 100644 processor/metricstransformprocessor/config_test.go create mode 100644 processor/metricstransformprocessor/datapoint_aggregation.go create mode 100644 processor/metricstransformprocessor/doc.go create mode 100644 processor/metricstransformprocessor/factory.go create mode 100644 processor/metricstransformprocessor/factory_test.go create mode 100644 processor/metricstransformprocessor/go.mod create mode 100644 processor/metricstransformprocessor/go.sum create mode 100644 processor/metricstransformprocessor/metrics_testcase_builder_test.go create mode 100644 processor/metricstransformprocessor/metrics_transform_processor.go create mode 100644 processor/metricstransformprocessor/metrics_transform_processor_group_test.go create mode 100644 processor/metricstransformprocessor/metrics_transform_processor_test.go create mode 100644 processor/metricstransformprocessor/metrics_transform_processor_testcases_test.go create mode 100644 processor/metricstransformprocessor/operation_add_label.go create mode 100644 processor/metricstransformprocessor/operation_aggregate_label_values.go create mode 100644 processor/metricstransformprocessor/operation_aggregate_labels.go create mode 100644 processor/metricstransformprocessor/operation_delete_label_value.go create mode 100644 processor/metricstransformprocessor/operation_scale_value.go create mode 100644 processor/metricstransformprocessor/operation_toggle_scalar_datatype.go create mode 100644 processor/metricstransformprocessor/operation_update_label.go create mode 100644 processor/metricstransformprocessor/testdata/config_deprecated.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_full.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_action.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_aggregationtype.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_group.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_include.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_include_and_metricname.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_label.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_matchtype.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_newname.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_operation_action.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_operation_aggregationtype.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_regexp.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_scale.yaml create mode 100644 processor/metricstransformprocessor/testdata/config_invalid_submatchcase.yaml create mode 100644 processor/probabilisticsamplerprocessor/Makefile create mode 100644 processor/probabilisticsamplerprocessor/README.md create mode 100644 processor/probabilisticsamplerprocessor/config.go create mode 100644 processor/probabilisticsamplerprocessor/config_test.go create mode 100644 processor/probabilisticsamplerprocessor/factory.go create mode 100644 processor/probabilisticsamplerprocessor/factory_test.go create mode 100644 processor/probabilisticsamplerprocessor/go.mod create mode 100644 processor/probabilisticsamplerprocessor/go.sum create mode 100644 processor/probabilisticsamplerprocessor/probabilisticsampler.go create mode 100644 processor/probabilisticsamplerprocessor/probabilisticsampler_test.go create mode 100644 processor/probabilisticsamplerprocessor/testdata/config.yaml create mode 100644 processor/probabilisticsamplerprocessor/testdata/empty.yaml create mode 100644 processor/redactionprocessor/Makefile create mode 100644 processor/redactionprocessor/README.md create mode 100644 processor/redactionprocessor/config.go create mode 100644 processor/redactionprocessor/config_test.go create mode 100644 processor/redactionprocessor/factory.go create mode 100644 processor/redactionprocessor/factory_test.go create mode 100644 processor/redactionprocessor/go.mod create mode 100644 processor/redactionprocessor/go.sum create mode 100644 processor/redactionprocessor/processor.go create mode 100644 processor/redactionprocessor/processor_test.go create mode 100644 processor/redactionprocessor/testdata/config.yaml create mode 100644 processor/redactionprocessor/testdata/empty.yaml create mode 100644 processor/resourcedetectionprocessor/Makefile create mode 100644 processor/resourcedetectionprocessor/README.md create mode 100644 processor/resourcedetectionprocessor/config.go create mode 100644 processor/resourcedetectionprocessor/config_test.go create mode 100644 processor/resourcedetectionprocessor/doc.go create mode 100644 processor/resourcedetectionprocessor/factory.go create mode 100644 processor/resourcedetectionprocessor/factory_test.go create mode 100644 processor/resourcedetectionprocessor/go.mod create mode 100644 processor/resourcedetectionprocessor/go.sum create mode 100644 processor/resourcedetectionprocessor/internal/aws/ec2/config.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ec2/ec2.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ec2/ec2_test.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ec2/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ec2/metadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ecs/ecs.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/ecs/ecs_test.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/eks/detector.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/eks/detector_test.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/elasticbeanstalk/elasticbeanstalk.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/elasticbeanstalk/elasticbeanstalk_test.go create mode 100644 processor/resourcedetectionprocessor/internal/aws/elasticbeanstalk/fs.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/aks/aks.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/aks/aks_test.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/azure.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/azure_test.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/metadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/mockprovider.go create mode 100644 processor/resourcedetectionprocessor/internal/azure/mockprovider_test.go create mode 100644 processor/resourcedetectionprocessor/internal/consul/config.go create mode 100644 processor/resourcedetectionprocessor/internal/consul/consul.go create mode 100644 processor/resourcedetectionprocessor/internal/consul/consul_test.go create mode 100644 processor/resourcedetectionprocessor/internal/consul/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/consul/metadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/context.go create mode 100644 processor/resourcedetectionprocessor/internal/docker/docker.go create mode 100644 processor/resourcedetectionprocessor/internal/docker/docker_test.go create mode 100644 processor/resourcedetectionprocessor/internal/docker/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/docker/metadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/env/env.go create mode 100644 processor/resourcedetectionprocessor/internal/env/env_test.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/gce/gce.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/gce/gce_test.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/gke/gke.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/gke/gke_test.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/metadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/mockmetadata.go create mode 100644 processor/resourcedetectionprocessor/internal/gcp/mockmetadata_test.go create mode 100644 processor/resourcedetectionprocessor/internal/resourcedetection.go create mode 100644 processor/resourcedetectionprocessor/internal/resourcedetection_test.go create mode 100644 processor/resourcedetectionprocessor/internal/system/config.go create mode 100644 processor/resourcedetectionprocessor/internal/system/metadata.go create mode 100644 processor/resourcedetectionprocessor/internal/system/system.go create mode 100644 processor/resourcedetectionprocessor/internal/system/system_test.go create mode 100644 processor/resourcedetectionprocessor/internal/testutils.go create mode 100644 processor/resourcedetectionprocessor/resourcedetection_processor.go create mode 100644 processor/resourcedetectionprocessor/resourcedetection_processor_test.go create mode 100644 processor/resourcedetectionprocessor/testdata/config.yaml create mode 100644 processor/resourcedetectionprocessor/testdata/invalid_config.yaml create mode 100644 processor/resourceprocessor/Makefile create mode 100644 processor/resourceprocessor/README.md create mode 100644 processor/resourceprocessor/config.go create mode 100644 processor/resourceprocessor/config_test.go create mode 100644 processor/resourceprocessor/doc.go create mode 100644 processor/resourceprocessor/factory.go create mode 100644 processor/resourceprocessor/factory_test.go create mode 100644 processor/resourceprocessor/go.mod create mode 100644 processor/resourceprocessor/go.sum create mode 100644 processor/resourceprocessor/resource_processor.go create mode 100644 processor/resourceprocessor/resource_processor_test.go create mode 100644 processor/resourceprocessor/testdata/config.yaml create mode 100644 processor/routingprocessor/Makefile create mode 100644 processor/routingprocessor/README.md create mode 100644 processor/routingprocessor/config.go create mode 100644 processor/routingprocessor/config_test.go create mode 100644 processor/routingprocessor/extract.go create mode 100644 processor/routingprocessor/extract_test.go create mode 100644 processor/routingprocessor/factory.go create mode 100644 processor/routingprocessor/factory_test.go create mode 100644 processor/routingprocessor/go.mod create mode 100644 processor/routingprocessor/go.sum create mode 100644 processor/routingprocessor/processor.go create mode 100644 processor/routingprocessor/processor_test.go create mode 100644 processor/routingprocessor/router.go create mode 100644 processor/routingprocessor/testdata/config_logs.yaml create mode 100644 processor/routingprocessor/testdata/config_metrics.yaml create mode 100644 processor/routingprocessor/testdata/config_multipipelines.yaml create mode 100644 processor/routingprocessor/testdata/config_traces.yaml create mode 100644 processor/spanmetricsprocessor/Makefile create mode 100644 processor/spanmetricsprocessor/README.md create mode 100644 processor/spanmetricsprocessor/config.go create mode 100644 processor/spanmetricsprocessor/config_test.go create mode 100644 processor/spanmetricsprocessor/factory.go create mode 100644 processor/spanmetricsprocessor/factory_test.go create mode 100644 processor/spanmetricsprocessor/go.mod create mode 100644 processor/spanmetricsprocessor/go.sum create mode 100644 processor/spanmetricsprocessor/internal/cache/cache.go create mode 100644 processor/spanmetricsprocessor/internal/cache/cache_test.go create mode 100644 processor/spanmetricsprocessor/mocks/Host.go create mode 100644 processor/spanmetricsprocessor/mocks/MetricsExporter.go create mode 100644 processor/spanmetricsprocessor/mocks/TracesConsumer.go create mode 100644 processor/spanmetricsprocessor/processor.go create mode 100644 processor/spanmetricsprocessor/processor_test.go create mode 100644 processor/spanmetricsprocessor/testdata/config-2-pipelines.yaml create mode 100644 processor/spanmetricsprocessor/testdata/config-3-pipelines.yaml create mode 100644 processor/spanmetricsprocessor/testdata/config-exporter-not-found.yaml create mode 100644 processor/spanmetricsprocessor/testdata/config-full.yaml create mode 100644 processor/spanmetricsprocessor/testdata/config-prometheusremotewrite.yaml create mode 100644 processor/spanmetricsprocessor/testdata/config-simplest.yaml create mode 100644 processor/spanprocessor/Makefile create mode 100644 processor/spanprocessor/README.md create mode 100644 processor/spanprocessor/config.go create mode 100644 processor/spanprocessor/config_test.go create mode 100644 processor/spanprocessor/doc.go create mode 100644 processor/spanprocessor/factory.go create mode 100644 processor/spanprocessor/factory_test.go create mode 100644 processor/spanprocessor/go.mod create mode 100644 processor/spanprocessor/go.sum create mode 100644 processor/spanprocessor/span.go create mode 100644 processor/spanprocessor/span_test.go create mode 100644 processor/spanprocessor/testdata/config.yaml create mode 100644 processor/tailsamplingprocessor/Makefile create mode 100644 processor/tailsamplingprocessor/README.md create mode 100644 processor/tailsamplingprocessor/and_helper.go create mode 100644 processor/tailsamplingprocessor/composite_helper.go create mode 100644 processor/tailsamplingprocessor/composite_helper_test.go create mode 100644 processor/tailsamplingprocessor/config.go create mode 100644 processor/tailsamplingprocessor/config_test.go create mode 100644 processor/tailsamplingprocessor/factory.go create mode 100644 processor/tailsamplingprocessor/factory_test.go create mode 100644 processor/tailsamplingprocessor/go.mod create mode 100644 processor/tailsamplingprocessor/go.sum create mode 100644 processor/tailsamplingprocessor/internal/idbatcher/id_batcher.go create mode 100644 processor/tailsamplingprocessor/internal/idbatcher/id_batcher_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/always_sample.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/always_sample_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/and.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/and_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/composite.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/composite_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/doc.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/latency.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/latency_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/numeric_tag_filter.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/numeric_tag_filter_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/policy.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/probabilistic.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/probabilistic_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/rate_limiting.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/rate_limiting_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/status_code.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/status_code_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/string_tag_filter.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/string_tag_filter_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/time_provider.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/time_provider_test.go create mode 100644 processor/tailsamplingprocessor/internal/sampling/util.go create mode 100644 processor/tailsamplingprocessor/metrics.go create mode 100644 processor/tailsamplingprocessor/processor.go create mode 100644 processor/tailsamplingprocessor/processor_test.go create mode 100644 processor/tailsamplingprocessor/testdata/tail_sampling_config.yaml create mode 100644 processor/transformprocessor/Makefile create mode 100644 processor/transformprocessor/README.md create mode 100644 processor/transformprocessor/config.go create mode 100644 processor/transformprocessor/config_test.go create mode 100644 processor/transformprocessor/doc.go create mode 100644 processor/transformprocessor/factory.go create mode 100644 processor/transformprocessor/factory_test.go create mode 100644 processor/transformprocessor/go.mod create mode 100644 processor/transformprocessor/go.sum create mode 100644 processor/transformprocessor/internal/common/condition.go create mode 100644 processor/transformprocessor/internal/common/condition_test.go create mode 100644 processor/transformprocessor/internal/common/expression.go create mode 100644 processor/transformprocessor/internal/common/expression_test.go create mode 100644 processor/transformprocessor/internal/common/functions.go create mode 100644 processor/transformprocessor/internal/common/functions_test.go create mode 100644 processor/transformprocessor/internal/common/parser.go create mode 100644 processor/transformprocessor/internal/common/parser_test.go create mode 100644 processor/transformprocessor/internal/traces/functions.go create mode 100644 processor/transformprocessor/internal/traces/functions_test.go create mode 100644 processor/transformprocessor/internal/traces/processor.go create mode 100644 processor/transformprocessor/internal/traces/processor_test.go create mode 100644 processor/transformprocessor/internal/traces/traces.go create mode 100644 processor/transformprocessor/internal/traces/traces_test.go create mode 100644 processor/transformprocessor/testdata/config.yaml create mode 100644 processor/transformprocessor/testdata/invalid_config_bad_syntax.yaml create mode 100644 processor/transformprocessor/testdata/invalid_config_unknown_function.yaml create mode 100644 receiver/apachereceiver/Makefile create mode 100644 receiver/apachereceiver/README.md create mode 100644 receiver/apachereceiver/config.go create mode 100644 receiver/apachereceiver/config_test.go create mode 100644 receiver/apachereceiver/doc.go create mode 100644 receiver/apachereceiver/documentation.md create mode 100644 receiver/apachereceiver/factory.go create mode 100644 receiver/apachereceiver/factory_test.go create mode 100644 receiver/apachereceiver/go.mod create mode 100644 receiver/apachereceiver/go.sum create mode 100644 receiver/apachereceiver/integration_test.go create mode 100644 receiver/apachereceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/apachereceiver/metadata.yaml create mode 100644 receiver/apachereceiver/scraper.go create mode 100644 receiver/apachereceiver/scraper_test.go create mode 100644 receiver/apachereceiver/testdata/config.yaml create mode 100644 receiver/apachereceiver/testdata/integration/Dockerfile.apache create mode 100644 receiver/apachereceiver/testdata/integration/expected.json create mode 100644 receiver/apachereceiver/testdata/integration/httpd.conf create mode 100644 receiver/apachereceiver/testdata/scraper/expected.json create mode 100644 receiver/awscontainerinsightreceiver/Makefile create mode 100644 receiver/awscontainerinsightreceiver/README.md create mode 100644 receiver/awscontainerinsightreceiver/config.go create mode 100644 receiver/awscontainerinsightreceiver/config_test.go create mode 100644 receiver/awscontainerinsightreceiver/design.md create mode 100644 receiver/awscontainerinsightreceiver/doc.go create mode 100644 receiver/awscontainerinsightreceiver/factory.go create mode 100644 receiver/awscontainerinsightreceiver/factory_test.go create mode 100644 receiver/awscontainerinsightreceiver/go.mod create mode 100644 receiver/awscontainerinsightreceiver/go.sum create mode 100644 receiver/awscontainerinsightreceiver/images/ecs-design.png create mode 100644 receiver/awscontainerinsightreceiver/images/eks-design.png create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/cadvisor_linux.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/cadvisor_linux_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/cadvisor_nolinux.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/container_info_processor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/container_info_processor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/cpu_extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/cpu_extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/diskio_extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/diskio_extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/extractor_helpers_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/fs_extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/fs_extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/mem_extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/mem_extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/net_extractor.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/net_extractor_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/ContainerInContainer.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/CurInfoContainer.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/CurInfoNode.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/FileSystemStat.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/InfoPod.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/PreInfoContainer.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/extractors/testdata/PreInfoNode.json create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/testutils/ecshelpers.go create mode 100644 receiver/awscontainerinsightreceiver/internal/cadvisor/testutils/helpers.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/cgroup.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/cgroup_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecs_instance_info.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecs_instance_info_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecs_task_info.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecs_task_info_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecsinfo.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/ecsinfo_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/myCluster/test4/cpu.shares create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test1/cpu.shares create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test2/cpu.cfs_period_us create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test2/cpu.cfs_quota_us create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test3/cpu.cfs_period_us create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test3/cpu.cfs_quota_us create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/cpu/ecs/test3/cpu.shares create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/ecsinfo/clusterinfo create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/ecsinfo/taskinfo create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/ecsinfo/taskinfo_wrong create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/myCluster/test3/memory.limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/test1/memory.limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/test2/container1/memory.limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/test2/container1/memory.soft_limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/test2/container2/memory.limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/memory/ecs/test2/memory.limit_in_bytes create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/mountinfo create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/mountinfo_err1 create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/mountinfo_err2 create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/test/mountinfo_err3 create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/utils.go create mode 100644 receiver/awscontainerinsightreceiver/internal/ecsInfo/utils_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ebsvolume.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ebsvolume_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ec2metadata.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ec2metadata_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ec2tags.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/ec2tags_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/hostinfo.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/hostinfo_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/nodeCapacity.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/nodeCapacity_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/host/testdata/mounts create mode 100644 receiver/awscontainerinsightreceiver/internal/host/utils.go create mode 100644 receiver/awscontainerinsightreceiver/internal/k8sapiserver/k8sapiserver.go create mode 100644 receiver/awscontainerinsightreceiver/internal/k8sapiserver/k8sapiserver_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/kubeletutil/kubeletclient.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/nodeinfo.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/nodeinfo_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/podstore.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/podstore_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/servicestore.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/servicestore_test.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/store.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/utils.go create mode 100644 receiver/awscontainerinsightreceiver/internal/stores/utils_test.go create mode 100644 receiver/awscontainerinsightreceiver/receiver.go create mode 100644 receiver/awscontainerinsightreceiver/receiver_test.go create mode 100644 receiver/awscontainerinsightreceiver/testdata/config.yaml create mode 100644 receiver/awsecscontainermetricsreceiver/Makefile create mode 100644 receiver/awsecscontainermetricsreceiver/README.md create mode 100644 receiver/awsecscontainermetricsreceiver/config.go create mode 100644 receiver/awsecscontainermetricsreceiver/config_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/doc.go create mode 100644 receiver/awsecscontainermetricsreceiver/factory.go create mode 100644 receiver/awsecscontainermetricsreceiver/factory_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/go.mod create mode 100644 receiver/awsecscontainermetricsreceiver/go.sum create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/accumulator.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/accumulator_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/constant.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/docker_stats.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/ecs_metrics.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/metrics.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/metrics_helper.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/metrics_helper_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/metrics_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/resource.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/resource_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/stats_provider.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/stats_provider_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/translator.go create mode 100644 receiver/awsecscontainermetricsreceiver/internal/awsecscontainermetrics/translator_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/receiver.go create mode 100644 receiver/awsecscontainermetricsreceiver/receiver_test.go create mode 100644 receiver/awsecscontainermetricsreceiver/testdata/config.yaml create mode 100644 receiver/awsecscontainermetricsreceiver/testdata/task_stats.json create mode 100644 receiver/awsfirehosereceiver/Makefile create mode 100644 receiver/awsfirehosereceiver/README.md create mode 100644 receiver/awsfirehosereceiver/config.go create mode 100644 receiver/awsfirehosereceiver/config_test.go create mode 100644 receiver/awsfirehosereceiver/doc.go create mode 100644 receiver/awsfirehosereceiver/factory.go create mode 100644 receiver/awsfirehosereceiver/factory_test.go create mode 100644 receiver/awsfirehosereceiver/go.mod create mode 100644 receiver/awsfirehosereceiver/go.sum create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/cwmetric.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/metricsbuilder.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/metricsbuilder_test.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/testdata/invalid_records create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/testdata/multiple_records create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/testdata/single_record create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/testdata/some_invalid_records create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/unmarshaler.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/cwmetricstream/unmarshaler_test.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/unmarshaler.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/unmarshalertest/nop_unmarshaler.go create mode 100644 receiver/awsfirehosereceiver/internal/unmarshaler/unmarshalertest/nop_unmarshaler_test.go create mode 100644 receiver/awsfirehosereceiver/metrics_receiver.go create mode 100644 receiver/awsfirehosereceiver/metrics_receiver_test.go create mode 100644 receiver/awsfirehosereceiver/receiver.go create mode 100644 receiver/awsfirehosereceiver/receiver_test.go create mode 100644 receiver/awsfirehosereceiver/testdata/config.yaml create mode 100644 receiver/awsxrayreceiver/Makefile create mode 100644 receiver/awsxrayreceiver/README.md create mode 100644 receiver/awsxrayreceiver/config.go create mode 100644 receiver/awsxrayreceiver/config_test.go create mode 100644 receiver/awsxrayreceiver/doc.go create mode 100644 receiver/awsxrayreceiver/factory.go create mode 100644 receiver/awsxrayreceiver/factory_test.go create mode 100644 receiver/awsxrayreceiver/go.mod create mode 100644 receiver/awsxrayreceiver/go.sum create mode 100644 receiver/awsxrayreceiver/internal/errors/errors.go create mode 100644 receiver/awsxrayreceiver/internal/socketconn/socketconn.go create mode 100644 receiver/awsxrayreceiver/internal/tracesegment/tracesegment.go create mode 100644 receiver/awsxrayreceiver/internal/tracesegment/tracesegment_test.go create mode 100644 receiver/awsxrayreceiver/internal/tracesegment/util.go create mode 100644 receiver/awsxrayreceiver/internal/tracesegment/util_test.go create mode 100644 receiver/awsxrayreceiver/internal/translator/addtoattrs.go create mode 100644 receiver/awsxrayreceiver/internal/translator/annotations.go create mode 100644 receiver/awsxrayreceiver/internal/translator/annotations_test.go create mode 100644 receiver/awsxrayreceiver/internal/translator/aws.go create mode 100644 receiver/awsxrayreceiver/internal/translator/cause.go create mode 100644 receiver/awsxrayreceiver/internal/translator/cause_test.go create mode 100644 receiver/awsxrayreceiver/internal/translator/http.go create mode 100644 receiver/awsxrayreceiver/internal/translator/metadata.go create mode 100644 receiver/awsxrayreceiver/internal/translator/name.go create mode 100644 receiver/awsxrayreceiver/internal/translator/sdk.go create mode 100644 receiver/awsxrayreceiver/internal/translator/sql.go create mode 100644 receiver/awsxrayreceiver/internal/translator/sql_test.go create mode 100644 receiver/awsxrayreceiver/internal/translator/time.go create mode 100644 receiver/awsxrayreceiver/internal/translator/translator.go create mode 100644 receiver/awsxrayreceiver/internal/translator/translator_test.go create mode 100644 receiver/awsxrayreceiver/internal/udppoller/poller.go create mode 100644 receiver/awsxrayreceiver/internal/udppoller/poller_test.go create mode 100644 receiver/awsxrayreceiver/receiver.go create mode 100644 receiver/awsxrayreceiver/receiver_test.go create mode 100644 receiver/awsxrayreceiver/testdata/config.yaml create mode 100644 receiver/carbonreceiver/Makefile create mode 100644 receiver/carbonreceiver/README.md create mode 100644 receiver/carbonreceiver/config.go create mode 100644 receiver/carbonreceiver/config_test.go create mode 100644 receiver/carbonreceiver/doc.go create mode 100644 receiver/carbonreceiver/factory.go create mode 100644 receiver/carbonreceiver/factory_test.go create mode 100644 receiver/carbonreceiver/go.mod create mode 100644 receiver/carbonreceiver/go.sum create mode 100644 receiver/carbonreceiver/protocol/config.go create mode 100644 receiver/carbonreceiver/protocol/config_test.go create mode 100644 receiver/carbonreceiver/protocol/parser.go create mode 100644 receiver/carbonreceiver/protocol/path_parser_helper.go create mode 100644 receiver/carbonreceiver/protocol/plaintext_parser.go create mode 100644 receiver/carbonreceiver/protocol/plaintext_parser_test.go create mode 100644 receiver/carbonreceiver/protocol/regex_parser.go create mode 100644 receiver/carbonreceiver/protocol/regex_parser_test.go create mode 100644 receiver/carbonreceiver/receiver.go create mode 100644 receiver/carbonreceiver/receiver_test.go create mode 100644 receiver/carbonreceiver/reporter.go create mode 100644 receiver/carbonreceiver/reporter_test.go create mode 100644 receiver/carbonreceiver/testdata/config.yaml create mode 100644 receiver/carbonreceiver/transport/client/plaintext_client.go create mode 100644 receiver/carbonreceiver/transport/mock_reporter.go create mode 100644 receiver/carbonreceiver/transport/server.go create mode 100644 receiver/carbonreceiver/transport/server_test.go create mode 100644 receiver/carbonreceiver/transport/tcp_server.go create mode 100644 receiver/carbonreceiver/transport/udp_server.go create mode 100644 receiver/cloudfoundryreceiver/Makefile create mode 100644 receiver/cloudfoundryreceiver/README.md create mode 100644 receiver/cloudfoundryreceiver/config.go create mode 100644 receiver/cloudfoundryreceiver/config_test.go create mode 100644 receiver/cloudfoundryreceiver/converter.go create mode 100644 receiver/cloudfoundryreceiver/converter_test.go create mode 100644 receiver/cloudfoundryreceiver/doc.go create mode 100644 receiver/cloudfoundryreceiver/factory.go create mode 100644 receiver/cloudfoundryreceiver/factory_test.go create mode 100644 receiver/cloudfoundryreceiver/go.mod create mode 100644 receiver/cloudfoundryreceiver/go.sum create mode 100644 receiver/cloudfoundryreceiver/receiver.go create mode 100644 receiver/cloudfoundryreceiver/receiver_test.go create mode 100644 receiver/cloudfoundryreceiver/stream.go create mode 100644 receiver/cloudfoundryreceiver/stream_test.go create mode 100644 receiver/cloudfoundryreceiver/testdata/config-invalid.yaml create mode 100644 receiver/cloudfoundryreceiver/testdata/config.yaml create mode 100644 receiver/cloudfoundryreceiver/uaa.go create mode 100644 receiver/cloudfoundryreceiver/uaa_test.go create mode 100644 receiver/collectdreceiver/Makefile create mode 100644 receiver/collectdreceiver/README.md create mode 100644 receiver/collectdreceiver/collectd.go create mode 100644 receiver/collectdreceiver/collectd_test.go create mode 100644 receiver/collectdreceiver/config.go create mode 100644 receiver/collectdreceiver/config_test.go create mode 100644 receiver/collectdreceiver/doc.go create mode 100644 receiver/collectdreceiver/factory.go create mode 100644 receiver/collectdreceiver/factory_test.go create mode 100644 receiver/collectdreceiver/go.mod create mode 100644 receiver/collectdreceiver/go.sum create mode 100644 receiver/collectdreceiver/observability.go create mode 100644 receiver/collectdreceiver/receiver.go create mode 100644 receiver/collectdreceiver/receiver_test.go create mode 100644 receiver/collectdreceiver/testdata/collectd.json create mode 100644 receiver/collectdreceiver/testdata/config.yaml create mode 100644 receiver/collectdreceiver/testdata/event.json create mode 100644 receiver/couchbasereceiver/Makefile create mode 100644 receiver/couchbasereceiver/README.md create mode 100644 receiver/couchbasereceiver/client.go create mode 100644 receiver/couchbasereceiver/client_test.go create mode 100644 receiver/couchbasereceiver/config.go create mode 100644 receiver/couchbasereceiver/config_test.go create mode 100644 receiver/couchbasereceiver/doc.go create mode 100644 receiver/couchbasereceiver/documentation.md create mode 100644 receiver/couchbasereceiver/factory.go create mode 100644 receiver/couchbasereceiver/factory_test.go create mode 100644 receiver/couchbasereceiver/go.mod create mode 100644 receiver/couchbasereceiver/go.sum create mode 100644 receiver/couchbasereceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/couchbasereceiver/metadata.yaml create mode 100644 receiver/couchbasereceiver/models.go create mode 100644 receiver/couchbasereceiver/testdata/apiresponses/get_bucket_stats.json create mode 100644 receiver/couchbasereceiver/testdata/apiresponses/get_cluster_bucket_info_response.json create mode 100644 receiver/couchbasereceiver/testdata/apiresponses/get_clusters_response.json create mode 100644 receiver/couchbasereceiver/testdata/config.yaml create mode 100644 receiver/couchdbreceiver/Makefile create mode 100644 receiver/couchdbreceiver/README.md create mode 100644 receiver/couchdbreceiver/client.go create mode 100644 receiver/couchdbreceiver/client_test.go create mode 100644 receiver/couchdbreceiver/config.go create mode 100644 receiver/couchdbreceiver/config_test.go create mode 100644 receiver/couchdbreceiver/doc.go create mode 100644 receiver/couchdbreceiver/documentation.md create mode 100644 receiver/couchdbreceiver/factory.go create mode 100644 receiver/couchdbreceiver/factory_test.go create mode 100644 receiver/couchdbreceiver/go.mod create mode 100644 receiver/couchdbreceiver/go.sum create mode 100644 receiver/couchdbreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/couchdbreceiver/metadata.yaml create mode 100644 receiver/couchdbreceiver/metrics.go create mode 100644 receiver/couchdbreceiver/scraper.go create mode 100644 receiver/couchdbreceiver/scraper_test.go create mode 100644 receiver/couchdbreceiver/testdata/config.yaml create mode 100644 receiver/couchdbreceiver/testdata/scraper/expected.json create mode 100644 receiver/couchdbreceiver/testdata/scraper/response_2.31.json create mode 100644 receiver/couchdbreceiver/testdata/scraper/response_3.12.json create mode 100644 receiver/dockerstatsreceiver/Makefile create mode 100644 receiver/dockerstatsreceiver/README.md create mode 100644 receiver/dockerstatsreceiver/config.go create mode 100644 receiver/dockerstatsreceiver/config_test.go create mode 100644 receiver/dockerstatsreceiver/factory.go create mode 100644 receiver/dockerstatsreceiver/factory_test.go create mode 100644 receiver/dockerstatsreceiver/go.mod create mode 100644 receiver/dockerstatsreceiver/go.sum create mode 100644 receiver/dockerstatsreceiver/integration_test.go create mode 100644 receiver/dockerstatsreceiver/metrics.go create mode 100644 receiver/dockerstatsreceiver/metrics_test.go create mode 100644 receiver/dockerstatsreceiver/receiver.go create mode 100644 receiver/dockerstatsreceiver/receiver_test.go create mode 100644 receiver/dockerstatsreceiver/testdata/config.yaml create mode 100644 receiver/dockerstatsreceiver/testdata/container.json create mode 100644 receiver/dockerstatsreceiver/testdata/stats.json create mode 100644 receiver/dotnetdiagnosticsreceiver/Makefile create mode 100644 receiver/dotnetdiagnosticsreceiver/README.md create mode 100644 receiver/dotnetdiagnosticsreceiver/config.go create mode 100644 receiver/dotnetdiagnosticsreceiver/config_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/common.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/event_header.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/event_header_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/event_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/event_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/ipc_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/ipc_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/metadata_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/metadata_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/metric.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/nettrace_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/nettrace_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/request.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/request_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/sequence_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/sequence_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/serialization_type.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/serialization_type_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/stack_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/stack_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/trace_parser.go create mode 100644 receiver/dotnetdiagnosticsreceiver/dotnet/trace_parser_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/factory.go create mode 100644 receiver/dotnetdiagnosticsreceiver/factory_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/go.mod create mode 100644 receiver/dotnetdiagnosticsreceiver/go.sum create mode 100644 receiver/dotnetdiagnosticsreceiver/metrics/converter.go create mode 100644 receiver/dotnetdiagnosticsreceiver/metrics/converter_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/metrics/sender.go create mode 100644 receiver/dotnetdiagnosticsreceiver/metrics/sender_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/blob_writer.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/blob_writer_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/fake_rw.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/fake_rw_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/net.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/net_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/reader.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/reader_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/writer.go create mode 100644 receiver/dotnetdiagnosticsreceiver/network/writer_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/receiver.go create mode 100644 receiver/dotnetdiagnosticsreceiver/receiver_test.go create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/config.yaml create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.0.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.1.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.10.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.11.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.12.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.13.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.14.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.15.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.16.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.17.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.18.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.2.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.3.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.4.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.5.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.6.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.7.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.8.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/metric.9.json create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.0.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.1.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.10.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.11.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.12.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.13.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.14.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.15.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.16.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.17.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.2.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.3.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.4.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.5.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.6.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.7.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.8.bin create mode 100644 receiver/dotnetdiagnosticsreceiver/testdata/msg.9.bin create mode 100644 receiver/elasticsearchreceiver/Makefile create mode 100644 receiver/elasticsearchreceiver/README.md create mode 100644 receiver/elasticsearchreceiver/client.go create mode 100644 receiver/elasticsearchreceiver/client_test.go create mode 100644 receiver/elasticsearchreceiver/config.go create mode 100644 receiver/elasticsearchreceiver/config_test.go create mode 100644 receiver/elasticsearchreceiver/doc.go create mode 100644 receiver/elasticsearchreceiver/documentation.md create mode 100644 receiver/elasticsearchreceiver/factory.go create mode 100644 receiver/elasticsearchreceiver/factory_test.go create mode 100644 receiver/elasticsearchreceiver/go.mod create mode 100644 receiver/elasticsearchreceiver/go.sum create mode 100644 receiver/elasticsearchreceiver/internal/metadata/emitters.go create mode 100644 receiver/elasticsearchreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/elasticsearchreceiver/internal/mocks/elasticsearchClient.go create mode 100644 receiver/elasticsearchreceiver/internal/model/clusterhealth.go create mode 100644 receiver/elasticsearchreceiver/internal/model/nodestats.go create mode 100644 receiver/elasticsearchreceiver/metadata.yaml create mode 100644 receiver/elasticsearchreceiver/scraper.go create mode 100644 receiver/elasticsearchreceiver/scraper_test.go create mode 100644 receiver/elasticsearchreceiver/testdata/config.yaml create mode 100644 receiver/elasticsearchreceiver/testdata/expected_metrics/clusterSkip.json create mode 100644 receiver/elasticsearchreceiver/testdata/expected_metrics/full.json create mode 100644 receiver/elasticsearchreceiver/testdata/expected_metrics/noNodes.json create mode 100644 receiver/elasticsearchreceiver/testdata/sample_payloads/health.json create mode 100644 receiver/elasticsearchreceiver/testdata/sample_payloads/nodes_linux.json create mode 100644 receiver/filelogreceiver/Makefile create mode 100644 receiver/filelogreceiver/README.md create mode 100644 receiver/filelogreceiver/doc.go create mode 100644 receiver/filelogreceiver/filelog.go create mode 100644 receiver/filelogreceiver/filelog_test.go create mode 100644 receiver/filelogreceiver/go.mod create mode 100644 receiver/filelogreceiver/go.sum create mode 100644 receiver/filelogreceiver/storage_test.go create mode 100644 receiver/filelogreceiver/testdata/config.yaml create mode 100644 receiver/filelogreceiver/testdata/simple.log create mode 100644 receiver/fluentforwardreceiver/Makefile create mode 100644 receiver/fluentforwardreceiver/README.md create mode 100644 receiver/fluentforwardreceiver/ack.go create mode 100644 receiver/fluentforwardreceiver/ack_test.go create mode 100644 receiver/fluentforwardreceiver/collector.go create mode 100644 receiver/fluentforwardreceiver/config.go create mode 100644 receiver/fluentforwardreceiver/config_test.go create mode 100644 receiver/fluentforwardreceiver/conversion.go create mode 100644 receiver/fluentforwardreceiver/conversion_test.go create mode 100644 receiver/fluentforwardreceiver/factory.go create mode 100644 receiver/fluentforwardreceiver/factory_test.go create mode 100644 receiver/fluentforwardreceiver/go.mod create mode 100644 receiver/fluentforwardreceiver/go.sum create mode 100644 receiver/fluentforwardreceiver/heartbeat.go create mode 100644 receiver/fluentforwardreceiver/heartbeat_test.go create mode 100644 receiver/fluentforwardreceiver/observ/metrics.go create mode 100644 receiver/fluentforwardreceiver/observ/metrics_test.go create mode 100644 receiver/fluentforwardreceiver/parse_test.go create mode 100644 receiver/fluentforwardreceiver/receiver.go create mode 100644 receiver/fluentforwardreceiver/receiver_test.go create mode 100644 receiver/fluentforwardreceiver/server.go create mode 100644 receiver/fluentforwardreceiver/server_test.go create mode 100644 receiver/fluentforwardreceiver/testdata/config.yaml create mode 100644 receiver/fluentforwardreceiver/testdata/forward-event.hexdump create mode 100644 receiver/fluentforwardreceiver/testdata/forward-packed-compressed.hexdump create mode 100644 receiver/fluentforwardreceiver/testdata/forward-packed.hexdump create mode 100644 receiver/fluentforwardreceiver/testdata/message-event.hexdump create mode 100644 receiver/fluentforwardreceiver/timeext.go create mode 100644 receiver/fluentforwardreceiver/timeext_test.go create mode 100644 receiver/fluentforwardreceiver/util_test.go create mode 100644 receiver/googlecloudpubsubreceiver/Makefile create mode 100644 receiver/googlecloudpubsubreceiver/README.md create mode 100644 receiver/googlecloudpubsubreceiver/config.go create mode 100644 receiver/googlecloudpubsubreceiver/config_test.go create mode 100644 receiver/googlecloudpubsubreceiver/factory.go create mode 100644 receiver/googlecloudpubsubreceiver/factory_test.go create mode 100644 receiver/googlecloudpubsubreceiver/go.mod create mode 100644 receiver/googlecloudpubsubreceiver/go.sum create mode 100644 receiver/googlecloudpubsubreceiver/internal/handler.go create mode 100644 receiver/googlecloudpubsubreceiver/internal/handler_test.go create mode 100644 receiver/googlecloudpubsubreceiver/receiver.go create mode 100644 receiver/googlecloudpubsubreceiver/receiver_test.go create mode 100644 receiver/googlecloudpubsubreceiver/testdata/config.yaml create mode 100644 receiver/googlecloudpubsubreceiver/testdata/data.go create mode 100644 receiver/googlecloudspannerreceiver/Makefile create mode 100644 receiver/googlecloudspannerreceiver/README.md create mode 100644 receiver/googlecloudspannerreceiver/cardinality.md create mode 100644 receiver/googlecloudspannerreceiver/config.go create mode 100644 receiver/googlecloudspannerreceiver/config_test.go create mode 100644 receiver/googlecloudspannerreceiver/doc.go create mode 100644 receiver/googlecloudspannerreceiver/factory.go create mode 100644 receiver/googlecloudspannerreceiver/factory_test.go create mode 100644 receiver/googlecloudspannerreceiver/go.mod create mode 100644 receiver/googlecloudspannerreceiver/go.sum create mode 100644 receiver/googlecloudspannerreceiver/internal/datasource/database.go create mode 100644 receiver/googlecloudspannerreceiver/internal/datasource/database_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/datasource/databaseid.go create mode 100644 receiver/googlecloudspannerreceiver/internal/datasource/databaseid_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filter/itemcardinality.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filter/itemcardinality_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filter/nopitemcardinality.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filter/nopitemcardinality_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filter/testhelpers_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filterfactory/filterbuilder.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filterfactory/filterbuilder_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filterfactory/itemfilterfactory.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filterfactory/itemfilterfactory_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/filterfactory/testhelpers_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/labelvalue.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/labelvalue_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metadata_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricdatatype.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricdatatype_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsbuilder.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsbuilder_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsdatapoint.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsdatapoint_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsmetadata.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricsmetadata_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricvalue.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/metricvalue_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadata/valuemetadata.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataconfig/metadata.yaml create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataconfig/metadata_yaml_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/label.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/label_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metadata.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metadata_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metadataconfig.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metadataparser.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metadataparser_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metric.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metric_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metrictype.go create mode 100644 receiver/googlecloudspannerreceiver/internal/metadataparser/metrictype_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/currentstatsreader.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/currentstatsreader_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/databasereader.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/databasereader_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/intervalstatsreader.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/intervalstatsreader_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/projectreader.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/projectreader_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/reader.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/statements.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/statements_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/statsreaders_mockedspanner_test.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/timestampsgenerator.go create mode 100644 receiver/googlecloudspannerreceiver/internal/statsreader/timestampsgenerator_test.go create mode 100644 receiver/googlecloudspannerreceiver/receiver.go create mode 100644 receiver/googlecloudspannerreceiver/receiver_test.go create mode 100644 receiver/googlecloudspannerreceiver/testdata/config.yaml create mode 100644 receiver/googlecloudspannerreceiver/testdata/metadata_invalid.yaml create mode 100644 receiver/googlecloudspannerreceiver/testdata/metadata_not_yaml.yaml create mode 100644 receiver/googlecloudspannerreceiver/testdata/metadata_valid.yaml create mode 100644 receiver/googlecloudspannerreceiver/testdata/serviceAccount.json create mode 100644 receiver/hostmetricsreceiver/Makefile create mode 100644 receiver/hostmetricsreceiver/README.md create mode 100644 receiver/hostmetricsreceiver/config.go create mode 100644 receiver/hostmetricsreceiver/config_test.go create mode 100644 receiver/hostmetricsreceiver/doc.go create mode 100644 receiver/hostmetricsreceiver/example_config.yaml create mode 100644 receiver/hostmetricsreceiver/factory.go create mode 100644 receiver/hostmetricsreceiver/factory_test.go create mode 100644 receiver/hostmetricsreceiver/go.mod create mode 100644 receiver/hostmetricsreceiver/go.sum create mode 100644 receiver/hostmetricsreceiver/hostmetrics_receiver_test.go create mode 100644 receiver/hostmetricsreceiver/internal/perfcounters/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/perfcounters/perfcounter_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/perfcounters/perfcounter_scraper_mock.go create mode 100644 receiver/hostmetricsreceiver/internal/perfcounters/perfcounter_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/cpu_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/cpu_scraper_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/cpu_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/cpu_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/ucal/cpu_utilization_calculator.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/cpuscraper/ucal/cpu_utilization_calculator_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_others_fallback.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_others_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_others_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/disk_scraper_windows_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/diskscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/filesystem_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/filesystem_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/filesystem_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/filesystem_scraper_unix.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/filesystemscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/load_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/load_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/load_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/load_scraper_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/load_scraper_windows_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/loadscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/memory_scraper_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/memoryscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/network_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/network_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/network_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/networkscraper/network_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/pagefile.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/pagefile_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/pagefile_linux_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/pagefile_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/pagefile_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/paging_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/paging_scraper_others_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/paging_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/paging_scraper_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/pagingscraper/paging_scraper_windows_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/processes_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/processes_scraper_fallback.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/processes_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processesscraper/processes_scraper_unix.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/config.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/doc.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/factory.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/factory_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/metadata.yaml create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_linux.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_others.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go create mode 100644 receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_windows.go create mode 100644 receiver/hostmetricsreceiver/internal/testutils.go create mode 100644 receiver/hostmetricsreceiver/testdata/config-invalidscraperkey.yaml create mode 100644 receiver/hostmetricsreceiver/testdata/config-noscrapers.yaml create mode 100644 receiver/hostmetricsreceiver/testdata/config.yaml create mode 100644 receiver/influxdbreceiver/Makefile create mode 100644 receiver/influxdbreceiver/README.md create mode 100644 receiver/influxdbreceiver/config.go create mode 100644 receiver/influxdbreceiver/factory.go create mode 100644 receiver/influxdbreceiver/go.mod create mode 100644 receiver/influxdbreceiver/go.sum create mode 100644 receiver/influxdbreceiver/logger.go create mode 100644 receiver/influxdbreceiver/receiver.go create mode 100644 receiver/jaegerreceiver/Makefile create mode 100644 receiver/jaegerreceiver/README.md create mode 100644 receiver/jaegerreceiver/config.go create mode 100644 receiver/jaegerreceiver/config_test.go create mode 100644 receiver/jaegerreceiver/doc.go create mode 100644 receiver/jaegerreceiver/errors.go create mode 100644 receiver/jaegerreceiver/factory.go create mode 100644 receiver/jaegerreceiver/factory_test.go create mode 100644 receiver/jaegerreceiver/go.mod create mode 100644 receiver/jaegerreceiver/go.sum create mode 100644 receiver/jaegerreceiver/jaeger_agent_test.go create mode 100644 receiver/jaegerreceiver/testdata/bad_empty_config.yaml create mode 100644 receiver/jaegerreceiver/testdata/bad_no_proto_config.yaml create mode 100644 receiver/jaegerreceiver/testdata/bad_proto_config.yaml create mode 100644 receiver/jaegerreceiver/testdata/bad_typo_default_proto_config.yaml create mode 100644 receiver/jaegerreceiver/testdata/ca.crt create mode 100644 receiver/jaegerreceiver/testdata/client.crt create mode 100644 receiver/jaegerreceiver/testdata/client.key create mode 100644 receiver/jaegerreceiver/testdata/config.yaml create mode 100644 receiver/jaegerreceiver/testdata/server.crt create mode 100644 receiver/jaegerreceiver/testdata/server.key create mode 100644 receiver/jaegerreceiver/testdata/strategies.json create mode 100644 receiver/jaegerreceiver/trace_receiver.go create mode 100644 receiver/jaegerreceiver/trace_receiver_test.go create mode 100644 receiver/jmxreceiver/Makefile create mode 100644 receiver/jmxreceiver/README.md create mode 100644 receiver/jmxreceiver/config.go create mode 100644 receiver/jmxreceiver/config_test.go create mode 100644 receiver/jmxreceiver/factory.go create mode 100644 receiver/jmxreceiver/factory_test.go create mode 100644 receiver/jmxreceiver/go.mod create mode 100644 receiver/jmxreceiver/go.sum create mode 100644 receiver/jmxreceiver/integration_test.go create mode 100644 receiver/jmxreceiver/internal/subprocess/Makefile create mode 100644 receiver/jmxreceiver/internal/subprocess/integration_test.go create mode 100644 receiver/jmxreceiver/internal/subprocess/subprocess.go create mode 100644 receiver/jmxreceiver/internal/subprocess/subprocess_linux.go create mode 100644 receiver/jmxreceiver/internal/subprocess/subprocess_others.go create mode 100644 receiver/jmxreceiver/internal/subprocess/subprocess_test.go create mode 100644 receiver/jmxreceiver/receiver.go create mode 100644 receiver/jmxreceiver/receiver_test.go create mode 100644 receiver/jmxreceiver/testdata/Dockerfile.cassandra create mode 100644 receiver/jmxreceiver/testdata/config.yaml create mode 100644 receiver/jmxreceiver/testdata/script.groovy create mode 100644 receiver/journaldreceiver/Makefile create mode 100644 receiver/journaldreceiver/README.md create mode 100644 receiver/journaldreceiver/doc.go create mode 100644 receiver/journaldreceiver/go.mod create mode 100644 receiver/journaldreceiver/go.sum create mode 100644 receiver/journaldreceiver/journald.go create mode 100644 receiver/journaldreceiver/journald_nonlinux.go create mode 100644 receiver/journaldreceiver/journald_test.go create mode 100644 receiver/journaldreceiver/testdata/config.yaml create mode 100644 receiver/k8sclusterreceiver/Makefile create mode 100644 receiver/k8sclusterreceiver/README.md create mode 100644 receiver/k8sclusterreceiver/config.go create mode 100644 receiver/k8sclusterreceiver/config_test.go create mode 100644 receiver/k8sclusterreceiver/factory.go create mode 100644 receiver/k8sclusterreceiver/factory_test.go create mode 100644 receiver/k8sclusterreceiver/go.mod create mode 100644 receiver/k8sclusterreceiver/go.sum create mode 100644 receiver/k8sclusterreceiver/internal/collection/clusteresourcequotas.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/clusterresourcequotas_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/collector.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/collector_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/containers.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/cronjobs.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/cronjobs_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/daemonsets.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/daemonsets_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/deployments.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/deployments_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/helpers_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/hpa.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/hpa_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/jobs.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/jobs_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/metadata.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/metadata_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/metadatastore.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/metricsstore.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/metricsstore_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/namespaces.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/namespaces_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/nodes.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/nodes_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/pods.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/pods_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/replica.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/replicasets.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/replicasets_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/replicationcontrollers.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/resourcequotas.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/resourcequotas_test.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/statefulsets.go create mode 100644 receiver/k8sclusterreceiver/internal/collection/statefulsets_test.go create mode 100644 receiver/k8sclusterreceiver/internal/testutils/metrics.go create mode 100644 receiver/k8sclusterreceiver/internal/testutils/mock_cache_store.go create mode 100644 receiver/k8sclusterreceiver/internal/utils/kube.go create mode 100644 receiver/k8sclusterreceiver/internal/utils/kube_test.go create mode 100644 receiver/k8sclusterreceiver/internal/utils/set.go create mode 100644 receiver/k8sclusterreceiver/internal/utils/timeseries.go create mode 100644 receiver/k8sclusterreceiver/internal/utils/timeseries_test.go create mode 100644 receiver/k8sclusterreceiver/mock_exporter_test.go create mode 100644 receiver/k8sclusterreceiver/mock_resources_test.go create mode 100644 receiver/k8sclusterreceiver/receiver.go create mode 100644 receiver/k8sclusterreceiver/receiver_test.go create mode 100644 receiver/k8sclusterreceiver/testdata/config.yaml create mode 100644 receiver/k8sclusterreceiver/watcher.go create mode 100644 receiver/k8sclusterreceiver/watcher_test.go create mode 100644 receiver/k8seventsreceiver/Makefile create mode 100644 receiver/k8seventsreceiver/README.md create mode 100644 receiver/k8seventsreceiver/config.go create mode 100644 receiver/k8seventsreceiver/config_test.go create mode 100644 receiver/k8seventsreceiver/factory.go create mode 100644 receiver/k8seventsreceiver/factory_test.go create mode 100644 receiver/k8seventsreceiver/go.mod create mode 100644 receiver/k8seventsreceiver/go.sum create mode 100644 receiver/k8seventsreceiver/k8s_event_to_logdata.go create mode 100644 receiver/k8seventsreceiver/k8s_event_to_logdata_test.go create mode 100644 receiver/k8seventsreceiver/receiver.go create mode 100644 receiver/k8seventsreceiver/receiver_test.go create mode 100644 receiver/k8seventsreceiver/testdata/config.yaml create mode 100644 receiver/kafkametricsreceiver/Makefile create mode 100644 receiver/kafkametricsreceiver/README.md create mode 100644 receiver/kafkametricsreceiver/broker_scraper.go create mode 100644 receiver/kafkametricsreceiver/broker_scraper_test.go create mode 100644 receiver/kafkametricsreceiver/config.go create mode 100644 receiver/kafkametricsreceiver/config_test.go create mode 100644 receiver/kafkametricsreceiver/consumer_scraper.go create mode 100644 receiver/kafkametricsreceiver/consumer_scraper_test.go create mode 100644 receiver/kafkametricsreceiver/doc.go create mode 100644 receiver/kafkametricsreceiver/documentation.md create mode 100644 receiver/kafkametricsreceiver/factory.go create mode 100644 receiver/kafkametricsreceiver/factory_test.go create mode 100644 receiver/kafkametricsreceiver/go.mod create mode 100644 receiver/kafkametricsreceiver/go.sum create mode 100644 receiver/kafkametricsreceiver/internal/metadata/generated_metrics.go create mode 100644 receiver/kafkametricsreceiver/kafkametrics_e2e_test.go create mode 100644 receiver/kafkametricsreceiver/metadata.yaml create mode 100644 receiver/kafkametricsreceiver/receiver.go create mode 100644 receiver/kafkametricsreceiver/receiver_test.go create mode 100644 receiver/kafkametricsreceiver/scraper_test_helper.go create mode 100644 receiver/kafkametricsreceiver/testdata/config.yaml create mode 100644 receiver/kafkametricsreceiver/topic_scraper.go create mode 100644 receiver/kafkametricsreceiver/topic_scraper_test.go create mode 100644 receiver/kafkareceiver/Makefile create mode 100644 receiver/kafkareceiver/README.md create mode 100644 receiver/kafkareceiver/config.go create mode 100644 receiver/kafkareceiver/config_test.go create mode 100644 receiver/kafkareceiver/doc.go create mode 100644 receiver/kafkareceiver/factory.go create mode 100644 receiver/kafkareceiver/factory_test.go create mode 100644 receiver/kafkareceiver/go.mod create mode 100644 receiver/kafkareceiver/go.sum create mode 100644 receiver/kafkareceiver/jaeger_unmarshaler.go create mode 100644 receiver/kafkareceiver/jaeger_unmarshaler_test.go create mode 100644 receiver/kafkareceiver/kafka_receiver.go create mode 100644 receiver/kafkareceiver/kafka_receiver_test.go create mode 100644 receiver/kafkareceiver/metrics.go create mode 100644 receiver/kafkareceiver/metrics_test.go create mode 100644 receiver/kafkareceiver/pdata_unmarshaler.go create mode 100644 receiver/kafkareceiver/pdata_unmarshaler_test.go create mode 100644 receiver/kafkareceiver/testdata/config.yaml create mode 100644 receiver/kafkareceiver/unmarshaler.go create mode 100644 receiver/kafkareceiver/unmarshaler_test.go create mode 100644 receiver/kafkareceiver/zipkin_unmarshaler.go create mode 100644 receiver/kafkareceiver/zipkin_unmarshaler_test.go create mode 100644 receiver/kubeletstatsreceiver/Makefile create mode 100644 receiver/kubeletstatsreceiver/README.md create mode 100644 receiver/kubeletstatsreceiver/config.go create mode 100644 receiver/kubeletstatsreceiver/config_test.go create mode 100644 receiver/kubeletstatsreceiver/doc.go create mode 100644 receiver/kubeletstatsreceiver/documentation.md create mode 100644 receiver/kubeletstatsreceiver/factory.go create mode 100644 receiver/kubeletstatsreceiver/factory_test.go create mode 100644 receiver/kubeletstatsreceiver/go.mod create mode 100644 receiver/kubeletstatsreceiver/go.sum create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/accumulator.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/accumulator_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/conventions.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/cpu.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/fs.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/mem.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metadata.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metadata_provider.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metadata_provider_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metadata_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metrics.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/metrics_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/network.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/resource.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/rest_client.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/rest_client_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/stats_provider.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/utils.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/volume.go create mode 100644 receiver/kubeletstatsreceiver/internal/kubelet/volume_test.go create mode 100644 receiver/kubeletstatsreceiver/internal/metadata/generated_metrics.go create mode 100644 receiver/kubeletstatsreceiver/metadata.yaml create mode 100644 receiver/kubeletstatsreceiver/mocked_objects_test.go create mode 100644 receiver/kubeletstatsreceiver/scraper.go create mode 100644 receiver/kubeletstatsreceiver/scraper_test.go create mode 100644 receiver/kubeletstatsreceiver/testdata/config.yaml create mode 100644 receiver/kubeletstatsreceiver/testdata/pods.json create mode 100644 receiver/kubeletstatsreceiver/testdata/stats-summary.json create mode 100644 receiver/kubeletstatsreceiver/testdata/testcert.crt create mode 100644 receiver/kubeletstatsreceiver/testdata/testkey.key create mode 100644 receiver/memcachedreceiver/Makefile create mode 100644 receiver/memcachedreceiver/README.md create mode 100644 receiver/memcachedreceiver/client.go create mode 100644 receiver/memcachedreceiver/client_mock_test.go create mode 100644 receiver/memcachedreceiver/config.go create mode 100644 receiver/memcachedreceiver/doc.go create mode 100644 receiver/memcachedreceiver/documentation.md create mode 100644 receiver/memcachedreceiver/factory.go create mode 100644 receiver/memcachedreceiver/factory_test.go create mode 100644 receiver/memcachedreceiver/go.mod create mode 100644 receiver/memcachedreceiver/go.sum create mode 100644 receiver/memcachedreceiver/integration_test.go create mode 100644 receiver/memcachedreceiver/internal/metadata/generated_metrics.go create mode 100644 receiver/memcachedreceiver/metadata.yaml create mode 100644 receiver/memcachedreceiver/scraper.go create mode 100644 receiver/memcachedreceiver/scraper_test.go create mode 100644 receiver/memcachedreceiver/testdata/expected_metrics/test_scraper/expected.json create mode 100644 receiver/memcachedreceiver/testdata/fake_stats.json create mode 100644 receiver/mongodbatlasreceiver/Makefile create mode 100644 receiver/mongodbatlasreceiver/README.md create mode 100644 receiver/mongodbatlasreceiver/config.go create mode 100644 receiver/mongodbatlasreceiver/doc.go create mode 100644 receiver/mongodbatlasreceiver/documentation.md create mode 100644 receiver/mongodbatlasreceiver/factory.go create mode 100644 receiver/mongodbatlasreceiver/go.mod create mode 100644 receiver/mongodbatlasreceiver/go.sum create mode 100644 receiver/mongodbatlasreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/mongodbatlasreceiver/internal/metadata/metric_name_mapping.go create mode 100644 receiver/mongodbatlasreceiver/internal/metric_conversion.go create mode 100644 receiver/mongodbatlasreceiver/internal/mongodb_atlas_client.go create mode 100644 receiver/mongodbatlasreceiver/metadata.yaml create mode 100644 receiver/mongodbatlasreceiver/receiver.go create mode 100644 receiver/mongodbatlasreceiver/receiver_test.go create mode 100644 receiver/mongodbreceiver/Makefile create mode 100644 receiver/mongodbreceiver/README.md create mode 100644 receiver/mongodbreceiver/client.go create mode 100644 receiver/mongodbreceiver/client_test.go create mode 100644 receiver/mongodbreceiver/config.go create mode 100644 receiver/mongodbreceiver/config_test.go create mode 100644 receiver/mongodbreceiver/doc.go create mode 100644 receiver/mongodbreceiver/documentation.md create mode 100644 receiver/mongodbreceiver/factory.go create mode 100644 receiver/mongodbreceiver/factory_test.go create mode 100644 receiver/mongodbreceiver/go.mod create mode 100644 receiver/mongodbreceiver/go.sum create mode 100644 receiver/mongodbreceiver/internal/metadata/emitters.go create mode 100644 receiver/mongodbreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/mongodbreceiver/metadata.yaml create mode 100644 receiver/mongodbreceiver/metrics.go create mode 100644 receiver/mongodbreceiver/scraper.go create mode 100644 receiver/mongodbreceiver/scraper_test.go create mode 100644 receiver/mongodbreceiver/testdata/admin.json create mode 100644 receiver/mongodbreceiver/testdata/buildInfo.json create mode 100644 receiver/mongodbreceiver/testdata/config.yaml create mode 100644 receiver/mongodbreceiver/testdata/dbstats.json create mode 100644 receiver/mongodbreceiver/testdata/scraper/expected.json create mode 100644 receiver/mongodbreceiver/testdata/serverStatus.json create mode 100644 receiver/mysqlreceiver/Makefile create mode 100644 receiver/mysqlreceiver/README.md create mode 100644 receiver/mysqlreceiver/client.go create mode 100644 receiver/mysqlreceiver/config.go create mode 100644 receiver/mysqlreceiver/doc.go create mode 100644 receiver/mysqlreceiver/documentation.md create mode 100644 receiver/mysqlreceiver/factory.go create mode 100644 receiver/mysqlreceiver/factory_test.go create mode 100644 receiver/mysqlreceiver/go.mod create mode 100644 receiver/mysqlreceiver/go.sum create mode 100644 receiver/mysqlreceiver/integration_test.go create mode 100644 receiver/mysqlreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/mysqlreceiver/metadata.yaml create mode 100644 receiver/mysqlreceiver/scraper.go create mode 100644 receiver/mysqlreceiver/scraper_test.go create mode 100644 receiver/mysqlreceiver/testdata/config.yaml create mode 100644 receiver/mysqlreceiver/testdata/integration/Dockerfile.mysql.5_7 create mode 100644 receiver/mysqlreceiver/testdata/integration/Dockerfile.mysql.8_0 create mode 100644 receiver/mysqlreceiver/testdata/integration/expected.5_7.json create mode 100644 receiver/mysqlreceiver/testdata/integration/expected.8_0.json create mode 100644 receiver/mysqlreceiver/testdata/integration/scripts/setup.sh create mode 100644 receiver/mysqlreceiver/testdata/scraper/expected.json create mode 100644 receiver/mysqlreceiver/testdata/scraper/global_stats.txt create mode 100644 receiver/mysqlreceiver/testdata/scraper/innodb_stats.txt create mode 100644 receiver/nginxreceiver/Makefile create mode 100644 receiver/nginxreceiver/README.md create mode 100644 receiver/nginxreceiver/config.go create mode 100644 receiver/nginxreceiver/doc.go create mode 100644 receiver/nginxreceiver/documentation.md create mode 100644 receiver/nginxreceiver/factory.go create mode 100644 receiver/nginxreceiver/factory_test.go create mode 100644 receiver/nginxreceiver/go.mod create mode 100644 receiver/nginxreceiver/go.sum create mode 100644 receiver/nginxreceiver/integration_test.go create mode 100644 receiver/nginxreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/nginxreceiver/metadata.yaml create mode 100644 receiver/nginxreceiver/scraper.go create mode 100644 receiver/nginxreceiver/scraper_test.go create mode 100644 receiver/nginxreceiver/testdata/integration/Dockerfile.nginx create mode 100644 receiver/nginxreceiver/testdata/integration/default.conf create mode 100644 receiver/nginxreceiver/testdata/integration/expected.json create mode 100644 receiver/nginxreceiver/testdata/scraper/expected.json create mode 100644 receiver/opencensusreceiver/Makefile create mode 100644 receiver/opencensusreceiver/README.md create mode 100644 receiver/opencensusreceiver/config.go create mode 100644 receiver/opencensusreceiver/config_test.go create mode 100644 receiver/opencensusreceiver/doc.go create mode 100644 receiver/opencensusreceiver/factory.go create mode 100644 receiver/opencensusreceiver/factory_test.go create mode 100644 receiver/opencensusreceiver/go.mod create mode 100644 receiver/opencensusreceiver/go.sum create mode 100644 receiver/opencensusreceiver/internal/ocmetrics/doc.go create mode 100644 receiver/opencensusreceiver/internal/ocmetrics/opencensus.go create mode 100644 receiver/opencensusreceiver/internal/ocmetrics/opencensus_test.go create mode 100644 receiver/opencensusreceiver/internal/octrace/doc.go create mode 100644 receiver/opencensusreceiver/internal/octrace/observability_test.go create mode 100644 receiver/opencensusreceiver/internal/octrace/opencensus.go create mode 100644 receiver/opencensusreceiver/internal/octrace/opencensus_test.go create mode 100644 receiver/opencensusreceiver/opencensus.go create mode 100644 receiver/opencensusreceiver/opencensus_test.go create mode 100644 receiver/opencensusreceiver/options.go create mode 100644 receiver/opencensusreceiver/testdata/config.yaml create mode 100644 receiver/podmanreceiver/Makefile create mode 100644 receiver/podmanreceiver/README.md create mode 100644 receiver/podmanreceiver/config.go create mode 100644 receiver/podmanreceiver/config_test.go create mode 100644 receiver/podmanreceiver/factory.go create mode 100644 receiver/podmanreceiver/factory_test.go create mode 100644 receiver/podmanreceiver/go.mod create mode 100644 receiver/podmanreceiver/go.sum create mode 100644 receiver/podmanreceiver/metrics.go create mode 100644 receiver/podmanreceiver/metrics_test.go create mode 100644 receiver/podmanreceiver/podman_client.go create mode 100644 receiver/podmanreceiver/podman_client_test.go create mode 100644 receiver/podmanreceiver/podman_connection.go create mode 100644 receiver/podmanreceiver/podman_connection_test.go create mode 100644 receiver/podmanreceiver/receiver.go create mode 100644 receiver/podmanreceiver/receiver_test.go create mode 100644 receiver/podmanreceiver/receiver_windows.go create mode 100644 receiver/podmanreceiver/receiver_windows_test.go create mode 100644 receiver/podmanreceiver/testdata/config.yaml create mode 100644 receiver/postgresqlreceiver/Makefile create mode 100644 receiver/postgresqlreceiver/README.md create mode 100644 receiver/postgresqlreceiver/client.go create mode 100644 receiver/postgresqlreceiver/config.go create mode 100644 receiver/postgresqlreceiver/config_test.go create mode 100755 receiver/postgresqlreceiver/debug.test create mode 100644 receiver/postgresqlreceiver/doc.go create mode 100644 receiver/postgresqlreceiver/documentation.md create mode 100644 receiver/postgresqlreceiver/factory.go create mode 100644 receiver/postgresqlreceiver/factory_test.go create mode 100644 receiver/postgresqlreceiver/go.mod create mode 100644 receiver/postgresqlreceiver/go.sum create mode 100644 receiver/postgresqlreceiver/integration_test.go create mode 100644 receiver/postgresqlreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/postgresqlreceiver/metadata.yaml create mode 100644 receiver/postgresqlreceiver/scraper.go create mode 100644 receiver/postgresqlreceiver/scraper_test.go create mode 100644 receiver/postgresqlreceiver/testdata/config.yaml create mode 100644 receiver/postgresqlreceiver/testdata/integration/Dockerfile.postgresql create mode 100644 receiver/postgresqlreceiver/testdata/integration/expected_all_db.json create mode 100644 receiver/postgresqlreceiver/testdata/integration/expected_multi_db.json create mode 100644 receiver/postgresqlreceiver/testdata/integration/expected_single_db.json create mode 100644 receiver/postgresqlreceiver/testdata/integration/init.sql create mode 100644 receiver/postgresqlreceiver/testdata/scraper/multiple/expected.json create mode 100644 receiver/postgresqlreceiver/testdata/scraper/otel/expected.json create mode 100644 receiver/prometheusexecreceiver/Makefile create mode 100644 receiver/prometheusexecreceiver/README.md create mode 100644 receiver/prometheusexecreceiver/config.go create mode 100644 receiver/prometheusexecreceiver/config_test.go create mode 100644 receiver/prometheusexecreceiver/factory.go create mode 100644 receiver/prometheusexecreceiver/factory_test.go create mode 100644 receiver/prometheusexecreceiver/go.mod create mode 100644 receiver/prometheusexecreceiver/go.sum create mode 100644 receiver/prometheusexecreceiver/receiver.go create mode 100644 receiver/prometheusexecreceiver/receiver_test.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/config.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/exec_command_other.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/exec_command_win.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/manager.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/manager_test.go create mode 100644 receiver/prometheusexecreceiver/subprocessmanager/testdata/test_crasher.go create mode 100644 receiver/prometheusexecreceiver/testdata/config.yaml create mode 100644 receiver/prometheusexecreceiver/testdata/end_to_end_metrics_test/test_prometheus_exporter.go create mode 100644 receiver/prometheusexecreceiver/testdata/metrics create mode 100644 receiver/prometheusreceiver/DESIGN.md create mode 100644 receiver/prometheusreceiver/Makefile create mode 100644 receiver/prometheusreceiver/README.md create mode 100644 receiver/prometheusreceiver/config.go create mode 100644 receiver/prometheusreceiver/config_test.go create mode 100644 receiver/prometheusreceiver/doc.go create mode 100644 receiver/prometheusreceiver/factory.go create mode 100644 receiver/prometheusreceiver/factory_test.go create mode 100644 receiver/prometheusreceiver/go.mod create mode 100644 receiver/prometheusreceiver/go.sum create mode 100644 receiver/prometheusreceiver/internal/internal_test.go create mode 100644 receiver/prometheusreceiver/internal/logger.go create mode 100644 receiver/prometheusreceiver/internal/logger_test.go create mode 100644 receiver/prometheusreceiver/internal/metadata.go create mode 100644 receiver/prometheusreceiver/internal/metricsutil_pdata_test.go create mode 100644 receiver/prometheusreceiver/internal/ocastore.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metricfamily.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metricfamily_test.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metrics_adjuster.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metrics_adjuster_test.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metricsbuilder.go create mode 100644 receiver/prometheusreceiver/internal/otlp_metricsbuilder_test.go create mode 100644 receiver/prometheusreceiver/internal/otlp_transaction.go create mode 100644 receiver/prometheusreceiver/internal/otlp_transaction_test.go create mode 100644 receiver/prometheusreceiver/internal/prom_to_otlp.go create mode 100644 receiver/prometheusreceiver/internal/prom_to_otlp_test.go create mode 100644 receiver/prometheusreceiver/internal/staleness_end_to_end_test.go create mode 100644 receiver/prometheusreceiver/internal/util.go create mode 100644 receiver/prometheusreceiver/internal/util_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_helper_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_honor_timestamp_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_labels_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_non_numerical_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_open_metrics_test.go create mode 100644 receiver/prometheusreceiver/metrics_receiver_test.go create mode 100644 receiver/prometheusreceiver/metrics_reciever_metric_rename_test.go create mode 100644 receiver/prometheusreceiver/scrapeloop-flowchart.png create mode 100644 receiver/prometheusreceiver/testdata/config.yaml create mode 100644 receiver/prometheusreceiver/testdata/config_env.yaml create mode 100644 receiver/prometheusreceiver/testdata/config_k8s.yaml create mode 100644 receiver/prometheusreceiver/testdata/config_sd.yaml create mode 100644 receiver/prometheusreceiver/testdata/dummy-tls-cert-file create mode 100644 receiver/prometheusreceiver/testdata/dummy-tls-key-file create mode 100644 receiver/prometheusreceiver/testdata/dummy.json create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-cert-file-without-key-file.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-file-sd-config-json.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-file-sd-config-yaml.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-key-file-without-cert-file.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-kubernetes-sd-config.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-non-existent-auth-credentials-file.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-non-existent-cert-file.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-non-existent-key-file.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-relabel.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-section.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-prometheus-unsupported-features.yaml create mode 100644 receiver/prometheusreceiver/testdata/invalid-config-section.yaml create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_blank_line/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_clashing_names_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_clashing_names_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_clashing_names_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_10/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_11/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_12/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_13/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_14/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_15/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_16/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_17/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_18/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_19/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_counter_values_9/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplar_timestamp_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplar_timestamp_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplar_timestamp_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_10/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_11/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_12/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_9/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_metric_types_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_metric_types_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_metric_types_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_samples_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_samples_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_samples_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_exemplars_on_unallowed_samples_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_10/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_grouping_or_ordering_9/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_help_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_help_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_help_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_help_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_help_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_10/bad_histograms_6/metrics.txt create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_10/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_11/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_12/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_9/bad_histograms_5/metrics.txt create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_histograms_9/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_info_and_stateset_values_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_info_and_stateset_values_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_invalid_labels_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metadata/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metadata_in_wrong_place_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metadata_in_wrong_place_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metadata_in_wrong_place_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metric_names_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metric_names_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_metric_names_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_equal_or_label_value_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_equal_or_label_value_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_equal_or_label_value_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_equal_or_label_value_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_equal_or_label_value_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_extra_commas_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_extra_commas_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_extra_commas_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_invalid_labels_for_a_type_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_wrong_quotes_on_label_value_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_wrong_quotes_on_label_value_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_or_wrong_quotes_on_label_value_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_value_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_missing_value_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_no_eof/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_repeated_metadata_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_repeated_metadata_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_repeated_metadata_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_repeated_metadata_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_stateset_info_values_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_stateset_info_values_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_stateset_info_values_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_stateset_info_values_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_text_after_eof_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_text_after_eof_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_timestamp_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_type_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_unit_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_10/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_11/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_12/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_2/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_3/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_4/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_5/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_6/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_7/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_8/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/bad_value_9/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/counter_exemplars/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/counter_exemplars_empty_brackets/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/counter_unit/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/duplicate_timestamps_0/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/duplicate_timestamps_1/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/empty_brackets/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/empty_help/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/empty_label/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/empty_metadata/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/escaping/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/exemplars_with_hash_in_label_values/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/float_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/gaugehistogram_exemplars/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/hash_in_label_value/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/help_escaping/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/histogram_exemplars/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/histogram_noncanonical/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/info_timestamps/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/label_escaping/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/labels_and_infinite/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/labels_with_curly_braces/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/leading_zeros_float_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/leading_zeros_simple_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/nan/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/nan_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/negative_bucket_gaugehistogram/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/negative_bucket_histogram/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/no_metadata/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/no_newline_after_eof/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/null_byte/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/roundtrip/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_counter/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_gaugehistogram/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_histogram/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_stateset/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/simple_summary/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/summary_quantiles/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/timestamps/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/type_help_switched/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/uint64_counter/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/unit_gauge/metrics create mode 100644 receiver/prometheusreceiver/testdata/openmetrics/untyped/metrics create mode 100644 receiver/prometheusreceiver/testdata/sd-config-with-null-target-group.json create mode 100644 receiver/prometheusreceiver/testdata/sd-config-with-null-target-group.yaml create mode 100644 receiver/rabbitmqreceiver/Makefile create mode 100644 receiver/rabbitmqreceiver/README.md create mode 100644 receiver/rabbitmqreceiver/client.go create mode 100644 receiver/rabbitmqreceiver/client_test.go create mode 100644 receiver/rabbitmqreceiver/config.go create mode 100644 receiver/rabbitmqreceiver/config_test.go create mode 100644 receiver/rabbitmqreceiver/doc.go create mode 100644 receiver/rabbitmqreceiver/documentation.md create mode 100644 receiver/rabbitmqreceiver/factory.go create mode 100644 receiver/rabbitmqreceiver/factory_test.go create mode 100644 receiver/rabbitmqreceiver/go.mod create mode 100644 receiver/rabbitmqreceiver/go.sum create mode 100644 receiver/rabbitmqreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/rabbitmqreceiver/internal/mocks/client.go create mode 100644 receiver/rabbitmqreceiver/internal/models/models.go create mode 100644 receiver/rabbitmqreceiver/metadata.yaml create mode 100644 receiver/rabbitmqreceiver/scraper.go create mode 100644 receiver/rabbitmqreceiver/scraper_test.go create mode 100644 receiver/rabbitmqreceiver/testdata/apiresponses/get_queues_response.json create mode 100644 receiver/rabbitmqreceiver/testdata/config.yaml create mode 100644 receiver/rabbitmqreceiver/testdata/expected_metrics/metrics_golden.json create mode 100644 receiver/receivercreator/Makefile create mode 100644 receiver/receivercreator/README.md create mode 100644 receiver/receivercreator/config.go create mode 100644 receiver/receivercreator/config_expansion.go create mode 100644 receiver/receivercreator/config_expansion_test.go create mode 100644 receiver/receivercreator/config_test.go create mode 100644 receiver/receivercreator/doc.go create mode 100644 receiver/receivercreator/factory.go create mode 100644 receiver/receivercreator/factory_test.go create mode 100644 receiver/receivercreator/fixtures_test.go create mode 100644 receiver/receivercreator/go.mod create mode 100644 receiver/receivercreator/go.sum create mode 100644 receiver/receivercreator/observerhandler.go create mode 100644 receiver/receivercreator/observerhandler_test.go create mode 100644 receiver/receivercreator/receiver.go create mode 100644 receiver/receivercreator/receiver_test.go create mode 100644 receiver/receivercreator/receivermap.go create mode 100644 receiver/receivercreator/receivermap_test.go create mode 100644 receiver/receivercreator/resourceenhancer.go create mode 100644 receiver/receivercreator/resourceenhancer_test.go create mode 100644 receiver/receivercreator/rules.go create mode 100644 receiver/receivercreator/rules_test.go create mode 100644 receiver/receivercreator/runner.go create mode 100644 receiver/receivercreator/runner_test.go create mode 100644 receiver/receivercreator/testdata/config.yaml create mode 100644 receiver/redisreceiver/Makefile create mode 100644 receiver/redisreceiver/README.md create mode 100644 receiver/redisreceiver/client.go create mode 100644 receiver/redisreceiver/client_test.go create mode 100644 receiver/redisreceiver/config.go create mode 100644 receiver/redisreceiver/doc.go create mode 100644 receiver/redisreceiver/documentation.md create mode 100644 receiver/redisreceiver/factory.go create mode 100644 receiver/redisreceiver/go.mod create mode 100644 receiver/redisreceiver/go.sum create mode 100644 receiver/redisreceiver/info.go create mode 100644 receiver/redisreceiver/info_test.go create mode 100644 receiver/redisreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/redisreceiver/keyspace.go create mode 100644 receiver/redisreceiver/keyspace_test.go create mode 100644 receiver/redisreceiver/metadata.yaml create mode 100644 receiver/redisreceiver/metric_functions.go create mode 100644 receiver/redisreceiver/metric_functions_test.go create mode 100644 receiver/redisreceiver/redis_e2e_test.go create mode 100644 receiver/redisreceiver/redis_scraper.go create mode 100644 receiver/redisreceiver/redis_scraper_test.go create mode 100644 receiver/redisreceiver/redis_svc.go create mode 100644 receiver/redisreceiver/redis_svc_test.go create mode 100644 receiver/redisreceiver/testdata/info.txt create mode 100644 receiver/riakreceiver/Makefile create mode 100644 receiver/riakreceiver/README.md create mode 100644 receiver/riakreceiver/client.go create mode 100644 receiver/riakreceiver/client_test.go create mode 100644 receiver/riakreceiver/config.go create mode 100644 receiver/riakreceiver/config_test.go create mode 100644 receiver/riakreceiver/doc.go create mode 100644 receiver/riakreceiver/documentation.md create mode 100644 receiver/riakreceiver/factory.go create mode 100644 receiver/riakreceiver/factory_test.go create mode 100644 receiver/riakreceiver/go.mod create mode 100644 receiver/riakreceiver/go.sum create mode 100644 receiver/riakreceiver/integration_test.go create mode 100644 receiver/riakreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/riakreceiver/internal/mocks/client.go create mode 100644 receiver/riakreceiver/internal/model/model.go create mode 100644 receiver/riakreceiver/metadata.yaml create mode 100644 receiver/riakreceiver/scraper.go create mode 100644 receiver/riakreceiver/scraper_test.go create mode 100644 receiver/riakreceiver/testdata/apiresponses/get_stats_response.json create mode 100644 receiver/riakreceiver/testdata/config.yaml create mode 100644 receiver/riakreceiver/testdata/integration/Dockerfile.riak create mode 100644 receiver/riakreceiver/testdata/integration/entrypoint.sh create mode 100644 receiver/riakreceiver/testdata/integration/expected.json create mode 100644 receiver/riakreceiver/testdata/integration/riak.conf create mode 100644 receiver/riakreceiver/testdata/scraper/expected.json create mode 100644 receiver/sapmreceiver/Makefile create mode 100644 receiver/sapmreceiver/README.md create mode 100644 receiver/sapmreceiver/config.go create mode 100644 receiver/sapmreceiver/config_test.go create mode 100644 receiver/sapmreceiver/doc.go create mode 100644 receiver/sapmreceiver/factory.go create mode 100644 receiver/sapmreceiver/factory_test.go create mode 100644 receiver/sapmreceiver/go.mod create mode 100644 receiver/sapmreceiver/go.sum create mode 100644 receiver/sapmreceiver/testdata/ca.crt create mode 100644 receiver/sapmreceiver/testdata/client.crt create mode 100644 receiver/sapmreceiver/testdata/client.key create mode 100644 receiver/sapmreceiver/testdata/config.yaml create mode 100644 receiver/sapmreceiver/testdata/server.crt create mode 100644 receiver/sapmreceiver/testdata/server.key create mode 100644 receiver/sapmreceiver/trace_receiver.go create mode 100644 receiver/sapmreceiver/trace_receiver_test.go create mode 100644 receiver/signalfxreceiver/Makefile create mode 100644 receiver/signalfxreceiver/README.md create mode 100644 receiver/signalfxreceiver/config.go create mode 100644 receiver/signalfxreceiver/config_test.go create mode 100644 receiver/signalfxreceiver/doc.go create mode 100644 receiver/signalfxreceiver/factory.go create mode 100644 receiver/signalfxreceiver/factory_test.go create mode 100644 receiver/signalfxreceiver/go.mod create mode 100644 receiver/signalfxreceiver/go.sum create mode 100644 receiver/signalfxreceiver/receiver.go create mode 100644 receiver/signalfxreceiver/receiver_test.go create mode 100644 receiver/signalfxreceiver/signalfxv2_event_to_logdata.go create mode 100644 receiver/signalfxreceiver/signalfxv2_event_to_logdata_test.go create mode 100644 receiver/signalfxreceiver/testdata/ca.crt create mode 100644 receiver/signalfxreceiver/testdata/client.crt create mode 100644 receiver/signalfxreceiver/testdata/client.key create mode 100644 receiver/signalfxreceiver/testdata/config.yaml create mode 100644 receiver/signalfxreceiver/testdata/server.crt create mode 100644 receiver/signalfxreceiver/testdata/server.key create mode 100644 receiver/simpleprometheusreceiver/Makefile create mode 100644 receiver/simpleprometheusreceiver/README.md create mode 100644 receiver/simpleprometheusreceiver/config.go create mode 100644 receiver/simpleprometheusreceiver/config_test.go create mode 100644 receiver/simpleprometheusreceiver/examples/federation/README.md create mode 100644 receiver/simpleprometheusreceiver/examples/federation/docker-compose.yml create mode 100644 receiver/simpleprometheusreceiver/examples/federation/otel-collector-config.yml create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prom-counter/Dockerfile create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prom-counter/Makefile create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prom-counter/go.mod create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prom-counter/go.sum create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prom-counter/main.go create mode 100644 receiver/simpleprometheusreceiver/examples/federation/prometheus.yml create mode 100644 receiver/simpleprometheusreceiver/factory.go create mode 100644 receiver/simpleprometheusreceiver/factory_test.go create mode 100644 receiver/simpleprometheusreceiver/go.mod create mode 100644 receiver/simpleprometheusreceiver/go.sum create mode 100644 receiver/simpleprometheusreceiver/receiver.go create mode 100644 receiver/simpleprometheusreceiver/receiver_test.go create mode 100644 receiver/simpleprometheusreceiver/testdata/config.yaml create mode 100644 receiver/skywalkingreceiver/Makefile create mode 100644 receiver/skywalkingreceiver/README.md create mode 100644 receiver/skywalkingreceiver/config.go create mode 100644 receiver/skywalkingreceiver/config_test.go create mode 100644 receiver/skywalkingreceiver/factory.go create mode 100644 receiver/skywalkingreceiver/factory_test.go create mode 100644 receiver/skywalkingreceiver/go.mod create mode 100644 receiver/skywalkingreceiver/go.sum create mode 100644 receiver/skywalkingreceiver/skywalkingproto_to_traces.go create mode 100644 receiver/skywalkingreceiver/skywalkingproto_to_traces_test.go create mode 100644 receiver/skywalkingreceiver/sw_dummy_clr_service.go create mode 100644 receiver/skywalkingreceiver/sw_dummy_event_service.go create mode 100644 receiver/skywalkingreceiver/sw_dummy_meter_service.go create mode 100644 receiver/skywalkingreceiver/sw_dummy_response_service.go create mode 100644 receiver/skywalkingreceiver/testdata/ca.crt create mode 100644 receiver/skywalkingreceiver/testdata/client.crt create mode 100644 receiver/skywalkingreceiver/testdata/client.key create mode 100644 receiver/skywalkingreceiver/testdata/config.yaml create mode 100644 receiver/skywalkingreceiver/testdata/server.crt create mode 100644 receiver/skywalkingreceiver/testdata/server.key create mode 100644 receiver/skywalkingreceiver/trace_receiver.go create mode 100644 receiver/skywalkingreceiver/trace_receiver_test.go create mode 100644 receiver/skywalkingreceiver/tracing_report_service.go create mode 100644 receiver/splunkhecreceiver/Makefile create mode 100644 receiver/splunkhecreceiver/README.md create mode 100644 receiver/splunkhecreceiver/config.go create mode 100644 receiver/splunkhecreceiver/config_test.go create mode 100644 receiver/splunkhecreceiver/doc.go create mode 100644 receiver/splunkhecreceiver/factory.go create mode 100644 receiver/splunkhecreceiver/factory_test.go create mode 100644 receiver/splunkhecreceiver/go.mod create mode 100644 receiver/splunkhecreceiver/go.sum create mode 100644 receiver/splunkhecreceiver/receiver.go create mode 100644 receiver/splunkhecreceiver/receiver_test.go create mode 100644 receiver/splunkhecreceiver/splunk_to_logdata.go create mode 100644 receiver/splunkhecreceiver/splunk_to_logdata_test.go create mode 100644 receiver/splunkhecreceiver/splunkhec_to_metricdata.go create mode 100644 receiver/splunkhecreceiver/splunkhec_to_metricdata_test.go create mode 100644 receiver/splunkhecreceiver/testdata/ca.crt create mode 100644 receiver/splunkhecreceiver/testdata/client.crt create mode 100644 receiver/splunkhecreceiver/testdata/client.key create mode 100644 receiver/splunkhecreceiver/testdata/config.yaml create mode 100644 receiver/splunkhecreceiver/testdata/server.crt create mode 100644 receiver/splunkhecreceiver/testdata/server.key create mode 100644 receiver/statsdreceiver/Makefile create mode 100644 receiver/statsdreceiver/README.md create mode 100644 receiver/statsdreceiver/config.go create mode 100644 receiver/statsdreceiver/config_test.go create mode 100644 receiver/statsdreceiver/doc.go create mode 100644 receiver/statsdreceiver/factory.go create mode 100644 receiver/statsdreceiver/factory_test.go create mode 100644 receiver/statsdreceiver/go.mod create mode 100644 receiver/statsdreceiver/go.sum create mode 100644 receiver/statsdreceiver/protocol/metric_translator.go create mode 100644 receiver/statsdreceiver/protocol/metric_translator_test.go create mode 100644 receiver/statsdreceiver/protocol/parser.go create mode 100644 receiver/statsdreceiver/protocol/statsd_parser.go create mode 100644 receiver/statsdreceiver/protocol/statsd_parser_test.go create mode 100644 receiver/statsdreceiver/receiver.go create mode 100644 receiver/statsdreceiver/receiver_test.go create mode 100644 receiver/statsdreceiver/reporter.go create mode 100644 receiver/statsdreceiver/reporter_test.go create mode 100644 receiver/statsdreceiver/testdata/config.yaml create mode 100644 receiver/statsdreceiver/transport/client/client.go create mode 100644 receiver/statsdreceiver/transport/mock_reporter.go create mode 100644 receiver/statsdreceiver/transport/server.go create mode 100644 receiver/statsdreceiver/transport/server_test.go create mode 100644 receiver/statsdreceiver/transport/udp_server.go create mode 100644 receiver/syslogreceiver/Makefile create mode 100644 receiver/syslogreceiver/README.md create mode 100644 receiver/syslogreceiver/doc.go create mode 100644 receiver/syslogreceiver/go.mod create mode 100644 receiver/syslogreceiver/go.sum create mode 100644 receiver/syslogreceiver/syslog.go create mode 100644 receiver/syslogreceiver/syslog_test.go create mode 100644 receiver/syslogreceiver/testdata/config.yaml create mode 100644 receiver/tcplogreceiver/Makefile create mode 100644 receiver/tcplogreceiver/README.md create mode 100644 receiver/tcplogreceiver/doc.go create mode 100644 receiver/tcplogreceiver/go.mod create mode 100644 receiver/tcplogreceiver/go.sum create mode 100644 receiver/tcplogreceiver/tcp.go create mode 100644 receiver/tcplogreceiver/tcp_test.go create mode 100644 receiver/tcplogreceiver/testdata/config.yaml create mode 100644 receiver/udplogreceiver/Makefile create mode 100644 receiver/udplogreceiver/README.md create mode 100644 receiver/udplogreceiver/doc.go create mode 100644 receiver/udplogreceiver/go.mod create mode 100644 receiver/udplogreceiver/go.sum create mode 100644 receiver/udplogreceiver/testdata/config.yaml create mode 100644 receiver/udplogreceiver/udp.go create mode 100644 receiver/udplogreceiver/udp_test.go create mode 100644 receiver/wavefrontreceiver/Makefile create mode 100644 receiver/wavefrontreceiver/README.md create mode 100644 receiver/wavefrontreceiver/config.go create mode 100644 receiver/wavefrontreceiver/config_test.go create mode 100644 receiver/wavefrontreceiver/factory.go create mode 100644 receiver/wavefrontreceiver/factory_test.go create mode 100644 receiver/wavefrontreceiver/go.mod create mode 100644 receiver/wavefrontreceiver/go.sum create mode 100644 receiver/wavefrontreceiver/receiver_test.go create mode 100644 receiver/wavefrontreceiver/testdata/config.yaml create mode 100644 receiver/wavefrontreceiver/wavefront_parser.go create mode 100644 receiver/wavefrontreceiver/wavefront_parser_test.go create mode 100644 receiver/windowsperfcountersreceiver/Makefile create mode 100644 receiver/windowsperfcountersreceiver/README.md create mode 100644 receiver/windowsperfcountersreceiver/config.go create mode 100644 receiver/windowsperfcountersreceiver/config_test.go create mode 100644 receiver/windowsperfcountersreceiver/doc.go create mode 100644 receiver/windowsperfcountersreceiver/example_config.yaml create mode 100644 receiver/windowsperfcountersreceiver/factory.go create mode 100644 receiver/windowsperfcountersreceiver/factory_others.go create mode 100644 receiver/windowsperfcountersreceiver/factory_others_test.go create mode 100644 receiver/windowsperfcountersreceiver/factory_test.go create mode 100644 receiver/windowsperfcountersreceiver/factory_windows.go create mode 100644 receiver/windowsperfcountersreceiver/factory_windows_test.go create mode 100644 receiver/windowsperfcountersreceiver/go.mod create mode 100644 receiver/windowsperfcountersreceiver/go.sum create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-allerrors.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-emptyinstance.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-negative-collection-interval.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-nocounters.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-nometrics.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-nometricspecified.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-noobjectname.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-noperfcounters.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-summetric.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config-unspecifiedmetrictype.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/config.yaml create mode 100644 receiver/windowsperfcountersreceiver/testdata/scraper/no_metric_def.json create mode 100644 receiver/windowsperfcountersreceiver/testdata/scraper/standard.json create mode 100644 receiver/windowsperfcountersreceiver/testdata/scraper/sum_metric.json create mode 100644 receiver/windowsperfcountersreceiver/windowsperfcounters_scraper.go create mode 100644 receiver/windowsperfcountersreceiver/windowsperfcounters_scraper_test.go create mode 100644 receiver/zipkinreceiver/Makefile create mode 100644 receiver/zipkinreceiver/README.md create mode 100644 receiver/zipkinreceiver/config.go create mode 100644 receiver/zipkinreceiver/config_test.go create mode 100644 receiver/zipkinreceiver/doc.go create mode 100644 receiver/zipkinreceiver/factory.go create mode 100644 receiver/zipkinreceiver/factory_test.go create mode 100644 receiver/zipkinreceiver/go.mod create mode 100644 receiver/zipkinreceiver/go.sum create mode 100644 receiver/zipkinreceiver/proto_parse_test.go create mode 100644 receiver/zipkinreceiver/testdata/config.yaml create mode 100644 receiver/zipkinreceiver/testdata/sample1.json create mode 100644 receiver/zipkinreceiver/testdata/sample2.json create mode 100644 receiver/zipkinreceiver/trace_receiver.go create mode 100644 receiver/zipkinreceiver/trace_receiver_test.go create mode 100644 receiver/zookeeperreceiver/Makefile create mode 100644 receiver/zookeeperreceiver/README.md create mode 100644 receiver/zookeeperreceiver/config.go create mode 100644 receiver/zookeeperreceiver/doc.go create mode 100644 receiver/zookeeperreceiver/documentation.md create mode 100644 receiver/zookeeperreceiver/factory.go create mode 100644 receiver/zookeeperreceiver/factory_test.go create mode 100644 receiver/zookeeperreceiver/go.mod create mode 100644 receiver/zookeeperreceiver/go.sum create mode 100644 receiver/zookeeperreceiver/internal/metadata/generated_metrics_v2.go create mode 100644 receiver/zookeeperreceiver/metadata.yaml create mode 100644 receiver/zookeeperreceiver/metrics.go create mode 100644 receiver/zookeeperreceiver/scraper.go create mode 100644 receiver/zookeeperreceiver/scraper_test.go create mode 100644 receiver/zookeeperreceiver/testdata/mntr-3.4.14 create mode 100644 receiver/zookeeperreceiver/testdata/mntr-3.5.5 create mode 100644 receiver/zookeeperreceiver/testdata/mntr-unexpected_line_format create mode 100644 receiver/zookeeperreceiver/testdata/mntr-unexpected_value_type create mode 100644 receiver/zookeeperreceiver/testdata/scraper/correctness-v3.4.14.json create mode 100644 receiver/zookeeperreceiver/testdata/scraper/correctness-v3.5.5.json create mode 100644 receiver/zookeeperreceiver/testdata/scraper/disable-watches.json create mode 100644 receiver/zookeeperreceiver/testdata/scraper/error-closing-connection.json create mode 100644 receiver/zookeeperreceiver/testdata/scraper/error-setting-connection-deadline.json create mode 100644 receiver/zookeeperreceiver/zk_e2e_test.go create mode 100644 results/TESTRESULTS.md create mode 100644 testbed/CCRepo_result.png create mode 100644 testbed/Makefile create mode 100644 testbed/README.md create mode 100644 testbed/correctness_result.png create mode 100644 testbed/correctnesstests/.gitignore create mode 100644 testbed/correctnesstests/metrics/correctness_test_case.go create mode 100644 testbed/correctnesstests/metrics/doc.go create mode 100644 testbed/correctnesstests/metrics/metric_diff.go create mode 100644 testbed/correctnesstests/metrics/metric_diff_test.go create mode 100644 testbed/correctnesstests/metrics/metric_index.go create mode 100644 testbed/correctnesstests/metrics/metric_supplier.go create mode 100644 testbed/correctnesstests/metrics/metrics_correctness_test.go create mode 100644 testbed/correctnesstests/metrics/metrics_test_harness.go create mode 100644 testbed/correctnesstests/metrics/results.go create mode 100644 testbed/correctnesstests/metrics/results_dir.go create mode 100644 testbed/correctnesstests/metrics/testdata/generated_pict_pairs_metrics_pipeline.txt create mode 100644 testbed/correctnesstests/metrics/testdata/pict_input_metrics_pipeline.txt create mode 100644 testbed/correctnesstests/traces/.gitignore create mode 100644 testbed/correctnesstests/traces/correctness_test.go create mode 100644 testbed/correctnesstests/traces/testdata/generated_pict_pairs_traces_pipeline.txt create mode 100644 testbed/correctnesstests/traces/testdata/pict_input_traces_pipeline.txt create mode 100644 testbed/correctnesstests/utils.go create mode 100644 testbed/datareceivers/carbon.go create mode 100644 testbed/datareceivers/jaeger.go create mode 100644 testbed/datareceivers/mockawsxraydatareceiver.go create mode 100644 testbed/datareceivers/opencensus.go create mode 100644 testbed/datareceivers/prometheus.go create mode 100644 testbed/datareceivers/sapm.go create mode 100644 testbed/datareceivers/signalfx.go create mode 100644 testbed/datareceivers/splunk.go create mode 100644 testbed/datareceivers/zipkin.go create mode 100644 testbed/datasenders/carbon.go create mode 100644 testbed/datasenders/fluent.go create mode 100644 testbed/datasenders/fluentbit.go create mode 100644 testbed/datasenders/jaeger.go create mode 100644 testbed/datasenders/k8s.go create mode 100644 testbed/datasenders/opencensus.go create mode 100644 testbed/datasenders/prometheus.go create mode 100644 testbed/datasenders/sapm.go create mode 100644 testbed/datasenders/signalfx.go create mode 100644 testbed/datasenders/stanza.go create mode 100644 testbed/datasenders/syslog.go create mode 100644 testbed/datasenders/tcpudp.go create mode 100644 testbed/datasenders/zipkin.go create mode 100644 testbed/e2e_diagram.jpeg create mode 100644 testbed/go.mod create mode 100644 testbed/go.sum create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/Makefile create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/config.go create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/factory.go create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/go.mod create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/go.sum create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/server.crt create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/server.key create mode 100644 testbed/mockdatareceivers/mockawsxrayreceiver/trace_receiver.go create mode 100755 testbed/runtests.sh create mode 100644 testbed/stabilitytests/.gitignore create mode 100644 testbed/stabilitytests/metric_test.go create mode 100644 testbed/stabilitytests/trace_test.go create mode 100644 testbed/testbed/.gitignore create mode 100644 testbed/testbed/child_process_collector.go create mode 100644 testbed/testbed/components.go create mode 100644 testbed/testbed/data_providers.go create mode 100644 testbed/testbed/data_providers_test.go create mode 100644 testbed/testbed/in_process_collector.go create mode 100644 testbed/testbed/in_process_collector_test.go create mode 100644 testbed/testbed/load_generator.go create mode 100644 testbed/testbed/mock_backend.go create mode 100644 testbed/testbed/mock_backend_test.go create mode 100644 testbed/testbed/options.go create mode 100644 testbed/testbed/otelcol_runner.go create mode 100644 testbed/testbed/receivers.go create mode 100644 testbed/testbed/results.go create mode 100644 testbed/testbed/senders.go create mode 100644 testbed/testbed/test_bed.go create mode 100644 testbed/testbed/test_case.go create mode 100644 testbed/testbed/utils.go create mode 100644 testbed/testbed/validator.go create mode 100644 testbed/tests/.gitignore create mode 100644 testbed/tests/e2e_test.go create mode 100644 testbed/tests/log_test.go create mode 100644 testbed/tests/metric_test.go create mode 100644 testbed/tests/resource_processor_test.go create mode 100644 testbed/tests/scenarios.go create mode 100644 testbed/tests/testdata/agent-config.yaml create mode 100644 testbed/tests/testdata/k8s-metrics.json create mode 100644 testbed/tests/testdata/memory-limiter.yaml create mode 100644 testbed/tests/trace_test.go create mode 100644 tracegen/Dockerfile create mode 100644 tracegen/Makefile create mode 100644 tracegen/README.md create mode 100644 tracegen/go.mod create mode 100644 tracegen/go.sum create mode 100644 tracegen/internal/tracegen/config.go create mode 100644 tracegen/internal/tracegen/worker.go create mode 100644 tracegen/internal/tracegen/worker_test.go create mode 100644 tracegen/main.go create mode 100644 versions.yaml diff --git a/.codecov.yml b/.codecov.yml new file mode 100644 index 00000000..186ebc1d --- /dev/null +++ b/.codecov.yml @@ -0,0 +1,23 @@ +codecov: + notify: + require_ci_to_pass: yes + # wait for unit and integration test builds. + after_n_builds: 2 + strict_yaml_branch: main # only use the latest copy on main branch + +coverage: + precision: 2 + round: down + range: "80...100" + status: + project: + default: + enabled: yes + target: 85% # This needs to be updated to 90 or higher. + patch: + default: + enabled: yes + target: 95% + +ignore: + - "*/**/third_party/**/*" # Ignore all 'third_party' directories and files within those directories recursively. diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..12a3b88c --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# This file is documented at https://git-scm.com/docs/gitattributes. +# Linguist-specific attributes are documented at +# https://github.com/github/linguist. + +go.sum linguist-generated=true + diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..586f1eac --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,161 @@ +##################################################### +# +# List of approvers for OpenTelemetry Collector Contrib +# +##################################################### +# +# Learn about membership in OpenTelemetry community: +# https://github.com/open-telemetry/community/blob/main/community-membership.md +# +# +# Learn about CODEOWNERS file format: +# https://help.github.com/en/articles/about-code-owners +# + +* @open-telemetry/collector-contrib-approvers + +cmd/mdatagen @open-telemetry/collector-contrib-approvers @dmitryax + +exporter/alibabacloudlogserviceexporter/ @open-telemetry/collector-contrib-approvers @shabicheng @kongluoxing @qiansheng91 +exporter/awscloudwatchlogsexporter @open-telemetry/collector-contrib-approvers @boostchicken +exporter/awsemfexporter/ @open-telemetry/collector-contrib-approvers @anuraaga @shaochengwang @mxiamxia +exporter/awskinesisexporter/ @open-telemetry/collector-contrib-approvers @anuraaga @MovieStoreGuy +exporter/awsprometheusremotewriteexporter/ @open-telemetry/collector-contrib-approvers @anuraaga @Aneurysm9 @alolita +exporter/awsxrayexporter/ @open-telemetry/collector-contrib-approvers @anuraaga +exporter/azuremonitorexporter/ @open-telemetry/collector-contrib-approvers @pcwiese +exporter/carbonexporter/ @open-telemetry/collector-contrib-approvers @pjanotti +exporter/clickhouseexporter/ @open-telemetry/collector-contrib-approvers @hanjm @dmitryax +exporter/coralogixexporter/ @open-telemetry/collector-contrib-approvers @oded-dd @ofirshmuel +exporter/datadogexporter/ @open-telemetry/collector-contrib-approvers @KSerrania @mx-psi @gbbr @knusbaum +exporter/dynatraceexporter/ @open-telemetry/collector-contrib-approvers @dyladan @arminru +exporter/elasticexporter/ @open-telemetry/collector-contrib-approvers @axw @simitt @jalvz +exporter/elasticsearchexporter/ @open-telemetry/collector-contrib-approvers @urso @faec @blakerouse +exporter/f5cloudexporter/ @open-telemetry/collector-contrib-approvers @gramidt +exporter/fileexporter/ @open-telemetry/collector-contrib-approvers @pmm-sumo +exporter/googlecloudexporter/ @open-telemetry/collector-contrib-approvers @aabmass @dashpole @jsuereth @punya @tbarker25 +exporter/googlecloudpubsubexporter/ @open-telemetry/collector-contrib-approvers @alexvanboxel +exporter/honeycombexporter/ @open-telemetry/collector-contrib-approvers @paulosman @lizthegrey @MikeGoldsmith +exporter/humioexporter/ @open-telemetry/collector-contrib-approvers @xitric +exporter/influxdbexporter/ @open-telemetry/collector-contrib-approvers @jacobmarble +exporter/jaegerexporter/ @open-telemetry/collector-contrib-approvers @jpkrohling +exporter/jaegerthrifthttpexporter/ @open-telemetry/collector-contrib-approvers @jpkrohling @pavolloffay +exporter/kafkaexporter/ @open-telemetry/collector-contrib-approvers @pavolloffay @MovieStoreGuy +exporter/loadbalancingexporter/ @open-telemetry/collector-contrib-approvers @jpkrohling +exporter/logzioexporter/ @open-telemetry/collector-contrib-approvers @jkowall @Doron-Bargo @yotamloe +exporter/lokiexporter/ @open-telemetry/collector-contrib-approvers @gramidt @jpkrohling +exporter/newrelicexporter/ @open-telemetry/collector-contrib-approvers @alanwest @jack-berg @nrcventura +exporter/observiqexporter/ @open-telemetry/collector-contrib-approvers @binaryfissiongames +exporter/prometheusexporter/ @open-telemetry/collector-contrib-approvers @Aneurysm9 +exporter/prometheusremotewriteexporter/ @open-telemetry/collector-contrib-approvers @Aneurysm9 +exporter/sapmexporter/ @open-telemetry/collector-contrib-approvers @owais @dmitryax +exporter/sentryexporter/ @open-telemetry/collector-contrib-approvers @AbhiPrasad +exporter/signalfxexporter/ @open-telemetry/collector-contrib-approvers @pmcollins @dmitryax +exporter/skywalkingexporter/ @open-telemetry/collector-contrib-approvers @liqiangz +exporter/splunkhecexporter/ @open-telemetry/collector-contrib-approvers @atoulme @dmitryax +exporter/stackdriverexporter/ @open-telemetry/collector-contrib-approvers @aabmass @dashpole @jsuereth @punya @tbarker25 +exporter/sumologicexporter/ @open-telemetry/collector-contrib-approvers @pmm-sumo @sumo-drosiek +exporter/tanzuobservabilityexporter/ @open-telemetry/collector-contrib-approvers @oppegard @thepeterstone @keep94 +exporter/tencentcloudlogserviceexporter/ @open-telemetry/collector-contrib-approvers @wgliang @yiyang5055 +exporter/zipkinexporter/ @open-telemetry/collector-contrib-approvers @pmm-sumo + +extension/asapauthextension/ @open-telemetry/collector-contrib-approvers @jamesmoessis @MovieStoreGuy +extension/awsproxy/ @open-telemetry/collector-contrib-approvers @anuraaga @Aneurysm9 @mxiamxia +extension/basicauthextension/ @open-telemetry/collector-contrib-approvers @jpkrohling @svrakitin +extension/bearertokenauthextension/ @open-telemetry/collector-contrib-approvers @jpkrohling @pavankrish123 +extension/healthcheckextension/ @open-telemetry/collector-contrib-approvers @jpkrohling +extension/jaegerremotesampling/ @open-telemetry/collector-contrib-approvers @jpkrohling +extension/oauth2clientauthextension/ @open-telemetry/collector-contrib-approvers @pavankrish123 @jpkrohling +extension/observer/ @open-telemetry/collector-contrib-approvers @dmitryax @rmfitzpatrick +extension/observer/dockerobserver/ @open-telemetry/collector-contrib-approvers @MovieStoreGuy +extension/observer/ecstaskobserver/ @open-telemetry/collector-contrib-approvers @rmfitzpatrick +extension/observer/hostobserver/ @open-telemetry/collector-contrib-approvers @MovieStoreGuy +extension/observer/k8sobserver/ @open-telemetry/collector-contrib-approvers @rmfitzpatrick @dmitryax +extension/oidcauthextension/ @open-telemetry/collector-contrib-approvers @jpkrohling +extension/sigv4authextention/ @open-telemetry/collector-contrib-approvers @Aneurysm9 @anuraaga @erichsueh3 +extension/pprofextension/ @open-telemetry/collector-contrib-approvers @MovieStoreGuy +extension/storage/dbstorage/ @open-telemetry/collector-contrib-approvers @dmitryax @atoulme +extension/storage/filestorage/ @open-telemetry/collector-contrib-approvers @djaglowski + +internal/aws/ @open-telemetry/collector-contrib-approvers @anuraaga @mxiamxia +internal/docker/ @open-telemetry/collector-contrib-approvers @mstumpfx @rmfitzpatrick + +internal/k8sconfig/ @open-telemetry/collector-contrib-approvers @pmcollins @dmitryax +internal/kubelet/ @open-telemetry/collector-contrib-approvers @dmitryax +internal/scrapertest/ @open-telemetry/collector-contrib-approvers @djaglowski +internal/splunk/ @open-telemetry/collector-contrib-approvers @pmcollins @dmitryax +internal/stanza/ @open-telemetry/collector-contrib-approvers @djaglowski + +pkg/batchpersignal/ @open-telemetry/collector-contrib-approvers @jpkrohling +pkg/resourcetotelemetry/ @open-telemetry/collector-contrib-approvers @mx-psi + +processor/attributesprocessor/ @open-telemetry/collector-contrib-approvers @boostchicken @pmm-sumo +processor/cumulativetodeltaprocessor/ @open-telemetry/collector-contrib-approvers @TylerHelmuth +processor/filterprocessor/ @open-telemetry/collector-contrib-approvers @boostchicken @pmm-sumo +processor/groupbyattrsprocessor/ @open-telemetry/collector-contrib-approvers @pmm-sumo +processor/groupbytraceprocessor/ @open-telemetry/collector-contrib-approvers @jpkrohling +processor/k8sattributesprocessor/ @open-telemetry/collector-contrib-approvers @owais @dmitryax @pmm-sumo +processor/metricstransformprocessor/ @open-telemetry/collector-contrib-approvers @punya +processor/probabilisticsamplerprocessor/ @open-telemetry/collector-contrib-approvers @jpkrohling +processor/redactionprocessor/ @open-telemetry/collector-contrib-approvers @leonsp-ai @dmitryax @mx-psi +processor/resourcedetectionprocessor/ @open-telemetry/collector-contrib-approvers @jrcamp @pmm-sumo @anuraaga @dashpole +processor/resourceprocessor @open-telemetry/collector-contrib-approvers @dmitryax +processor/resourcedetectionprocessor/internal/azure @open-telemetry/collector-contrib-approvers @mx-psi +processor/routingprocessor/ @open-telemetry/collector-contrib-approvers @jpkrohling +processor/spanmetricsprocessor/ @open-telemetry/collector-contrib-approvers @albertteoh +processor/spanprocessor/ @open-telemetry/collector-contrib-approvers @boostchicken @pmm-sumo +processor/tailsamplingprocessor/ @open-telemetry/collector-contrib-approvers @jpkrohling +processor/transformprocessor/ @open-telemetry/collector-contrib-approvers @anuraaga @bogdandrutu + +receiver/apachereceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/awscontainerinsightreceiver/ @open-telemetry/collector-contrib-approvers @Aneurysm9 @pxaws +receiver/awsecscontainermetricsreceiver/ @open-telemetry/collector-contrib-approvers @anuraaga +receiver/awsfirehosereceiver/ @open-telemetry/collector-contrib-approvers @anuraaga @Aneurysm9 +receiver/awsxrayreceiver/ @open-telemetry/collector-contrib-approvers @anuraaga +receiver/carbonreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti +receiver/cloudfoundryreceiver/ @open-telemetry/collector-contrib-approvers @agoallikmaa @pellared +receiver/collectdreceiver/ @open-telemetry/collector-contrib-approvers @owais +receiver/couchbasereceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @cpheps +receiver/couchdbreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/dockerstatsreceiver/ @open-telemetry/collector-contrib-approvers @rmfitzpatrick +receiver/dotnetdiagnosticsreceiver/ @open-telemetry/collector-contrib-approvers @pmcollins @davmason +receiver/elasticsearchreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @binaryfissiongames +receiver/filelogreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/fluentforwardreceiver/ @open-telemetry/collector-contrib-approvers @dmitryax +receiver/googlecloudpubsubreceiver/ @open-telemetry/collector-contrib-approvers @alexvanboxel +receiver/googlecloudspannerreceiver/ @open-telemetry/collector-contrib-approvers @ydrozhdzhal @asukhyy @khospodarysko @architjugran +receiver/hostmetricsreceiver @open-telemetry/collector-contrib-approvers @dmitryax +receiver/influxdbreceiver/ @open-telemetry/collector-contrib-approvers @jacobmarble +receiver/jaegerreceiver/ @open-telemetry/collector-contrib-approvers @jpkrohling +receiver/jmxreceiver/ @open-telemetry/collector-contrib-approvers @rmfitzpatrick +receiver/journaldreceiver/ @open-telemetry/collector-contrib-approvers @pmm-sumo +receiver/k8sclusterreceiver/ @open-telemetry/collector-contrib-approvers @dmitryax +receiver/k8seventsreceiver/ @open-telemetry/collector-contrib-approvers @dmitryax +receiver/kafkametricsreceiver/ @open-telemetry/collector-contrib-approvers @dmitryax +receiver/kafkareceiver/ @open-telemetry/collector-contrib-approvers @pavolloffay @MovieStoreGuy +receiver/kubeletstatsreceiver/ @open-telemetry/collector-contrib-approvers @pmcollins @dmitryax +receiver/memcachedreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/mongodbreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @schmikei +receiver/mongodbatlasreceiver/ @open-telemetry/collector-contrib-approvers @zenmoto +receiver/mysqlreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/nginxreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/postgresqlreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/prometheusexecreceiver/ @open-telemetry/collector-contrib-approvers @dmitryax +receiver/prometheusreceiver/ @open-telemetry/collector-contrib-approvers @Aneurysm9 @dashpole +receiver/rabbitmqreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @cpheps +receiver/receivercreator/ @open-telemetry/collector-contrib-approvers @jrcamp +receiver/redisreceiver/ @open-telemetry/collector-contrib-approvers @pmcollins @dmitryax +receiver/riakreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski @armstrmi +receiver/sapmreceiver/ @open-telemetry/collector-contrib-approvers @owais +receiver/signalfxreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti @dmitryax +receiver/skywalkingreceiver @open-telemetry/collector-contrib-approvers @JaredTan95 +receiver/splunkhecreceiver/ @open-telemetry/collector-contrib-approvers @atoulme @keitwb +receiver/statsdreceiver/ @open-telemetry/collector-contrib-approvers @jmacd @dmitryax +receiver/syslogreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/tcplogreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/udplogreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski +receiver/wavefrontreceiver/ @open-telemetry/collector-contrib-approvers @pjanotti +receiver/windowsperfcountersreceiver/ @open-telemetry/collector-contrib-approvers @dashpole +receiver/zipkinreceiver/ @open-telemetry/collector-contrib-approvers @pmm-sumo +receiver/zookeeperreceiver/ @open-telemetry/collector-contrib-approvers @djaglowski + +tracegen/ @open-telemetry/collector-contrib-approvers @jpkrohling diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..9003260b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: bug +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**Steps to reproduce** +If possible, provide a recipe for reproducing the error. + +**What did you expect to see?** +A clear and concise description of what you expected to see. + +**What did you see instead?** +A clear and concise description of what you saw instead. + +**What version did you use?** +Version: (e.g., `v0.4.0`, `1eb551b`, etc) + +**What config did you use?** +Config: (e.g. the yaml config file) + +**Environment** +OS: (e.g., "Ubuntu 20.04") +Compiler(if manually compiled): (e.g., "go 14.2") + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..e301d68c --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: feature request +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/new_component.md b/.github/ISSUE_TEMPLATE/new_component.md new file mode 100644 index 00000000..94e2027d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/new_component.md @@ -0,0 +1,30 @@ +--- +name: New component proposal +about: Suggest a new component for the project +title: 'New component: ' +labels: new component +assignees: '' + +--- + +## The purpose and use-cases of the new component + + +## Example configuration for the component + + +## Telemetry data types supported + + +## Sponsor (Optional) + diff --git a/.github/auto_assign.yml b/.github/auto_assign.yml new file mode 100644 index 00000000..301bfb9b --- /dev/null +++ b/.github/auto_assign.yml @@ -0,0 +1,28 @@ +# Set to true to add reviewers to pull requests +addReviewers: false + +# Set to true to add assignees to pull requests +addAssignees: true + +# Set to true to add assignees from different groups to pull requests +useAssigneeGroups: true + +# A list of assignees, split into different groups, to be added to pull requests (GitHub user name) +assigneeGroups: + approvers_maintainers: + # Approvers + - Aneurysm9 + - anuraaga + - dashpole + - djaglowski + - dmitryax + - mx-psi + - pmm-sumo + # Maintainers + - bogdandrutu + - codeboten + - jpkrohling + +# A number of assignees added to the pull request +# Set 0 to add all the assignees (default: 0) +numberOfAssignees: 1 diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..4745b9fe --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,692 @@ +# File generated by "make gendependabot"; DO NOT EDIT. + +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/cmd/configschema" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/cmd/mdatagen" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/examples/demo/client" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/examples/demo/server" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/alibabacloudlogserviceexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/awscloudwatchlogsexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/awsemfexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/awskinesisexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/awsprometheusremotewriteexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/awsxrayexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/azuremonitorexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/carbonexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/clickhouseexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/coralogixexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/datadogexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/dynatraceexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/elasticexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/elasticsearchexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/f5cloudexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/fileexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/googlecloudexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/googlecloudpubsubexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/honeycombexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/humioexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/influxdbexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/jaegerexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/jaegerthrifthttpexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/kafkaexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/loadbalancingexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/logzioexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/lokiexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/newrelicexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/observiqexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/opencensusexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/parquetexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/prometheusexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/prometheusremotewriteexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/sapmexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/sentryexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/signalfxexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/skywalkingexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/splunkhecexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/stackdriverexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/sumologicexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/tanzuobservabilityexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/tencentcloudlogserviceexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/exporter/zipkinexporter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/asapauthextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/awsproxy" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/basicauthextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/bearertokenauthextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/fluentbitextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/healthcheckextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/httpforwarder" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/jaegerremotesampling" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/oauth2clientauthextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer/dockerobserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer/ecsobserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer/ecstaskobserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer/hostobserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/observer/k8sobserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/oidcauthextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/pprofextension" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/extension/storage" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/awsutil" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/containerinsight" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/cwlogs" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/ecsutil" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/k8s" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/metrics" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/proxy" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/xray" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/xray/testdata/sampleapp" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/aws/xray/testdata/sampleserver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/common" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/containertest" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/coreinternal" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/docker" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/k8sconfig" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/kubelet" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/scrapertest" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/sharedcomponent" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/splunk" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/stanza" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/internal/tools" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/batchperresourceattr" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/batchpersignal" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/experimentalmetricmetadata" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/resourcetotelemetry" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/translator/jaeger" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/translator/opencensus" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/translator/prometheusremotewrite" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/translator/signalfx" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/pkg/translator/zipkin" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/attributesprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/cumulativetodeltaprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/deltatorateprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/filterprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/groupbyattrsprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/groupbytraceprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/k8sattributesprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/metricsgenerationprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/metricstransformprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/probabilisticsamplerprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/redactionprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/resourcedetectionprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/resourceprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/routingprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/spanmetricsprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/spanprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/tailsamplingprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/processor/transformprocessor" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/apachereceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/awscontainerinsightreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/awsecscontainermetricsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/awsfirehosereceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/awsxrayreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/carbonreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/cloudfoundryreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/collectdreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/couchbasereceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/couchdbreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/dockerstatsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/dotnetdiagnosticsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/elasticsearchreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/filelogreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/fluentforwardreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/googlecloudpubsubreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/googlecloudspannerreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/hostmetricsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/influxdbreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/jaegerreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/jmxreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/journaldreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/k8sclusterreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/k8seventsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/kafkametricsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/kafkareceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/kubeletstatsreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/memcachedreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/mongodbatlasreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/mongodbreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/mysqlreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/nginxreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/opencensusreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/podmanreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/postgresqlreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/prometheusexecreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/prometheusreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/rabbitmqreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/receivercreator" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/redisreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/sapmreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/signalfxreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/simpleprometheusreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/simpleprometheusreceiver/examples/federation/prom-counter" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/splunkhecreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/statsdreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/syslogreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/tcplogreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/udplogreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/wavefrontreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/windowsperfcountersreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/zipkinreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/receiver/zookeeperreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/testbed" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/testbed/mockdatareceivers/mockawsxrayreceiver" + schedule: + interval: "weekly" + - package-ecosystem: "gomod" + directory: "/tracegen" + schedule: + interval: "weekly" diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..ba328181 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,9 @@ +**Description:** + + +**Link to tracking Issue:** + +**Testing:** + +**Documentation:** \ No newline at end of file diff --git a/.github/workflows/auto-assign-owners.yml b/.github/workflows/auto-assign-owners.yml new file mode 100644 index 00000000..9b61218e --- /dev/null +++ b/.github/workflows/auto-assign-owners.yml @@ -0,0 +1,14 @@ +name: 'Auto Assign' +on: + pull_request_target: + types: [opened, ready_for_review] + +jobs: + add-owner: + runs-on: ubuntu-latest + steps: + - name: run + uses: kentaro-m/auto-assign-action@v1.2.1 + with: + configuration-path: ".github/auto_assign.yml" + repo-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/build-and-test-windows.yml b/.github/workflows/build-and-test-windows.yml new file mode 100644 index 00000000..68f474e2 --- /dev/null +++ b/.github/workflows/build-and-test-windows.yml @@ -0,0 +1,40 @@ +name: build-and-test-windows +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: +env: + TEST_RESULTS: testbed/tests/results/junit/results.xml + +jobs: + windows-unittest: + runs-on: windows-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + shell: bash + - name: Cache Go + uses: actions/cache@v3 + with: + path: | + \Users\runneradmin\go\pkg\mod + %LocalAppData%\go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Run Unit tests + # use default Go build tags from Makefile.common + run: go test --tags containers_image_openpgp,exclude_graphdriver_btrfs,exclude_graphdriver_devicemapper ./... + - name: GitHub Issue Generator + if: ${{ failure() && github.ref == 'ref/head/main' }} + run: | + cd internal/tools && go install go.opentelemetry.io/collector/cmd/issuegenerator + issuegenerator $TEST_RESULTS diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 00000000..5bcbc34c --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,490 @@ +name: build-and-test +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: +env: + TEST_RESULTS: testbed/tests/results/junit/results.xml + +jobs: + setup-environment: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Install dependencies + if: steps.module-cache.outputs.hit != 'true' + run: make -j2 gomoddownload + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools + check-collector-module-version: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v2 + - name: Check Collector Module Version + run: ./.github/workflows/scripts/check-collector-module-version.sh + lint: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Cache Build + uses: actions/cache@v3 + with: + path: /home/runner/.cache/go-build + key: go-build-lint-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Lint + run: make -j2 golint + checks: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Cache Build + uses: actions/cache@v3 + with: + path: /home/runner/.cache/go-build + key: go-build-lint-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: CheckDoc + run: make checkdoc + - name: Porto + run: | + make goporto + git diff --exit-code || (echo 'Porto links are out of date, please run "make goporto" and commit the changes in this PR.' && exit 1) + - name: CodeGen + run: | + make generate + git diff --exit-code ':!*go.sum' || (echo 'Generated code is out of date, please run "make generate" and commit the changes in this PR.' && exit 1) + - name: MultimodVerify + run: make multimod-verify + unittest: + strategy: + matrix: + go-version: [1.18, 1.17] + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Cache Build + uses: actions/cache@v3 + with: + path: /home/runner/.cache/go-build + key: go-build-unittest-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Run Unit Tests + run: make gotest + integration-tests: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Run Integration Tests + run: make integration-tests-with-cover + + correctness-traces: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Correctness + run: make -C testbed run-correctness-traces-tests + correctness-metrics: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Correctness + run: make -C testbed run-correctness-metrics-tests + + build-examples: + runs-on: ubuntu-latest + needs: [setup-environment] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Build Examples + run: make build-examples + + cross-compile: + runs-on: ubuntu-latest + needs: [unittest, integration-tests, lint] + strategy: + matrix: + binary: + - darwin_amd64 + - darwin_arm64 + - linux_amd64 + - linux_arm64 + - windows_amd64 + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + with: + path: | + /home/runner/go/pkg/mod + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Build Collector ${{ matrix.binary }} + run: make otelcontribcol-${{ matrix.binary }} + - name: Upload Collector Binaries + uses: actions/upload-artifact@v3 + with: + name: collector-binaries + path: ./bin/* + + build-package: + runs-on: ubuntu-latest + needs: [cross-compile] + strategy: + fail-fast: false + matrix: + package_type: ["deb", "rpm"] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Install Ruby + uses: actions/setup-ruby@v1 + with: + ruby-version: '2.6' + - name: Install fpm + run: gem install --no-document fpm -v 1.11.0 + - name: Download Collector Binaries + uses: actions/download-artifact@v3 + with: + name: collector-binaries + path: bin/ + - run: chmod +x bin/* + - name: Set Release Tag + id: github_tag + run: ./.github/workflows/scripts/set_release_tag.sh + - name: Build ${{ matrix.package_type }} amd64 package + run: ./internal/buildscripts/packaging/fpm/${{ matrix.package_type }}/build.sh "${{ steps.github_tag.outputs.tag }}" "amd64" "./dist/" + - name: Build ${{ matrix.package_type }} arm64 package + run: ./internal/buildscripts/packaging/fpm/${{ matrix.package_type }}/build.sh "${{ steps.github_tag.outputs.tag }}" "arm64" "./dist/" + - name: Test ${{ matrix.package_type }} package + run: | + if [[ "${{ matrix.package_type }}" = "deb" ]]; then + ./internal/buildscripts/packaging/fpm/test.sh dist/otel-contrib-collector*amd64.deb examples/tracing/otel-collector-config.yml + else + ./internal/buildscripts/packaging/fpm/test.sh dist/otel-contrib-collector*x86_64.rpm examples/tracing/otel-collector-config.yml + fi + - name: Upload Packages + uses: actions/upload-artifact@v3 + with: + name: collector-packages + path: ./dist/* + windows-msi: + runs-on: windows-latest + needs: [cross-compile] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Download Binaries + uses: actions/download-artifact@v3 + with: + name: collector-binaries + path: ./bin/ + - name: Cache Wix + id: wix-cache + uses: actions/cache@v3 + with: + path: | + "C:\Program Files (x86)\WiX Toolset v3.11" + key: wix-3.11 + - name: Install Wix Toolset + if: steps.wix-cache.outputs.cache-hit != 'true' + run: .\internal\buildscripts\packaging\msi\make.ps1 Install-Tools + - run: mkdir -p dist + - name: Build MSI + run: | + $Version = if ($env:GITHUB_REF -match '^refs/tags/(\d+\.\d+\.\d+)') { $Matches[1] } else { "0.0.1" } + .\internal\buildscripts\packaging\msi\make.ps1 New-MSI -Version $Version + - name: Validate MSI + run: .\internal\buildscripts\packaging\msi\make.ps1 Confirm-MSI + - name: Upload MSI + uses: actions/upload-artifact@v3 + with: + name: collector-packages + path: ./dist/*.msi + + publish-check: + runs-on: ubuntu-latest + needs: [build-package, windows-msi] + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Download Binaries + uses: actions/download-artifact@v3 + with: + name: collector-binaries + - name: Download Packages + uses: actions/download-artifact@v3 + with: + name: collector-packages + path: ./dist/ + - name: Verify Distribution Files Exist + id: check + run: ./.github/workflows/scripts/verify-dist-files-exist.sh + publish-dev: + runs-on: ubuntu-latest + needs: [lint, unittest, integration-tests, build-package, windows-msi] + if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) && github.repository == 'open-telemetry/opentelemetry-collector-contrib' + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + mkdir bin/ dist/ + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Download Binaries + uses: actions/download-artifact@v3 + with: + name: collector-binaries + path: ./bin/ + - run: chmod +x bin/* + - name: Download Packages + uses: actions/download-artifact@v3 + with: + name: collector-packages + path: ./dist/ + - name: Add Permissions to Tool Binaries + run: chmod -R +x ./dist + - name: Verify Distribution Files Exist + id: check + run: ./.github/workflows/scripts/verify-dist-files-exist.sh + - name: Build Docker Image + if: steps.check.outputs.passed == 'true' + run: | + make docker-otelcontribcol + docker tag otelcontribcol:latest otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA + docker tag otelcontribcol:latest otel/opentelemetry-collector-contrib-dev:latest + - name: Validate Docker Image + if: steps.check.outputs.passed == 'true' + run: | + docker run otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA --version + docker run otel/opentelemetry-collector-contrib-dev:latest --version + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Push Docker Image + if: steps.check.outputs.passed == 'true' + run: | + docker push otel/opentelemetry-collector-contrib-dev:$GITHUB_SHA + docker push otel/opentelemetry-collector-contrib-dev:latest + publish-stable: + runs-on: ubuntu-latest + needs: [lint, unittest, integration-tests, build-package, windows-msi] + if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'open-telemetry/opentelemetry-collector-contrib' + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + mkdir bin/ dist/ + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Set Release Tag + id: github_tag + run: ./.github/workflows/scripts/set_release_tag.sh + - name: Create Github Release + run: | + mkdir -p dist/ + ghr -t $GITHUB_TOKEN -u open-telemetry -r opentelemetry-collector-contrib --replace $RELEASE_TAG dist/ + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.github_tag.outputs.tag }} + diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 00000000..10ea8d4b --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,33 @@ +# This action requires that any PR targeting the main branch should touch at +# least one CHANGELOG file. If a CHANGELOG entry is not required, add the "Skip +# Changelog" label to disable this action. + +name: changelog + +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + branches: + - main +jobs: + changelog: + runs-on: ubuntu-latest + if: "!contains(github.event.pull_request.labels.*.name, 'Skip Changelog')" + + steps: + - uses: actions/checkout@v3 + + - name: Check for CHANGELOG changes + run: | + # Only the latest commit of the feature branch is available + # automatically. To diff with the base branch, we need to + # fetch that too (and we only need its latest commit). + git fetch origin ${{ github.base_ref }} --depth=1 + if [[ $(git diff --name-only FETCH_HEAD | grep CHANGELOG) ]] + then + echo "A CHANGELOG was modified. Looks good!" + else + echo "No CHANGELOG was modified." + echo "Please add a CHANGELOG entry, or add the \"Skip Changelog\" label if not required." + false + fi diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..3431adc9 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,30 @@ +name: "CodeQL Analysis" + +on: + push: + branches: [ main ] + +jobs: + CodeQL-Build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: go + + - name: Autobuild + uses: github/codeql-action/autobuild@v1 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/load-tests.yml b/.github/workflows/load-tests.yml new file mode 100644 index 00000000..dd1712d7 --- /dev/null +++ b/.github/workflows/load-tests.yml @@ -0,0 +1,135 @@ +name: load-tests +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: + +jobs: + setup-environment: + runs-on: ubuntu-latest + outputs: + loadtest_matrix: ${{ steps.splitloadtest.outputs.loadtest_matrix }} + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + env: + cache-name: cache-go-modules + with: + path: | + /home/runner/go/pkg/mod + /home/runner/.cache/go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + env: + cache-name: cache-tool-binaries + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Install dependencies + if: steps.module-cache.outputs.hit != 'true' + run: make -j2 gomoddownload + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools + - run: make otelcontribcol + - name: Upload Collector Binaries + uses: actions/upload-artifact@v3 + with: + name: collector-binaries + path: ./bin/* + - name: Split Loadtest Jobs + id: splitloadtest + run: ./.github/workflows/scripts/setup_e2e_tests.sh + + loadtest: + runs-on: ubuntu-latest + needs: [setup-environment] + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.setup-environment.outputs.loadtest_matrix) }} + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + env: + cache-name: cache-tool-binaries + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - run: sudo chmod 0777 -R /opt + - name: Fluentbit Cache + id: fluentbit-cache + uses: actions/cache@v3 + env: + cache-name: cache-fluentbit + with: + path: /opt/td-agent-bit + key: fluentbit-cache-1.5.3 + - run: sudo ln -s /opt/td-agent-bit/bin/td-agent-bit /usr/local/bin/fluent-bit + - name: Install fluentbit + if: steps.fluentbit-cache.outputs.cache-hit != 'true' + run: | + wget https://packages.fluentbit.io/ubuntu/bionic/pool/main/t/td-agent-bit/td-agent-bit_1.5.3_amd64.deb + sudo dpkg -i ./td-agent-bit*.deb + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + env: + cache-name: cache-go-modules + with: + path: | + /home/runner/go/pkg/mod + /home/runner/.cache/go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - run: mkdir -p results && touch results/TESTRESULTS.md + - name: Download Collector Binaries + uses: actions/download-artifact@v3 + with: + name: collector-binaries + path: bin/ + - run: chmod +x bin/* + - name: Loadtest + run: make -C testbed run-tests + env: + TEST_ARGS: "-test.run=${{ matrix.test }}" + - name: Set results filename + id: filename + run: echo "::set-output name=name::$(echo '${{ matrix.test }}' | sed -e 's/|/_/g')" + - name: Create Test Result Archive + if: ${{ failure() || success() }} + continue-on-error: true + run: tar -cvf test_results_${{steps.filename.outputs.name}}.tar testbed/tests/results + - name: Upload Test Results + if: ${{ failure() || success() }} + continue-on-error: true + uses: actions/upload-artifact@v3 + with: + path: ./*.tar + - name: GitHub Issue Generator + if: ${{ failure() && github.ref == 'ref/head/main' }} + run: issuegenerator $TEST_RESULTS diff --git a/.github/workflows/prometheus-compliance-tests.yml b/.github/workflows/prometheus-compliance-tests.yml new file mode 100644 index 00000000..5358318e --- /dev/null +++ b/.github/workflows/prometheus-compliance-tests.yml @@ -0,0 +1,52 @@ +name: prometheus-compliance-tests +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: + +jobs: + prometheus-compliance-tests: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + env: + cache-name: cache-tool-binaries + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + env: + cache-name: cache-go-modules + with: + path: | + /home/runner/go/pkg/mod + /home/runner/.cache/go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - run: make otelcontribcol + - name: Checkout compliance repo + uses: actions/checkout@v3 + with: + repository: prometheus/compliance + path: compliance + ref: f0482884578bac67b053e3eaa1ca7f783d146557 + - name: Copy binary to compliance directory + run: mkdir compliance/remote_write_sender/bin && cp ./bin/otelcontribcol_linux_amd64 compliance/remote_write_sender/bin/otelcol_linux_amd64 + - name: Run compliance tests + run: go test --tags=compliance -run "TestRemoteWrite/otel/.+" -v ./ + working-directory: compliance/remote_write_sender diff --git a/.github/workflows/scripts/check-collector-module-version.sh b/.github/workflows/scripts/check-collector-module-version.sh new file mode 100755 index 00000000..91183907 --- /dev/null +++ b/.github/workflows/scripts/check-collector-module-version.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash + +# Copyright The OpenTelemetry Authors + +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# +# verifies if the collector components are using the main core collector version +# as a dependency. +# +set -eu -o pipefail + +# Return the collector main core version +get_collector_version() { + collector_module="$1" + main_mod_file="$2" + + if grep -q "$collector_module" "$main_mod_file"; then + grep "$collector_module" "$main_mod_file" | (read mod version; + echo $version) + else + echo "Error: failed to retrieve the \"$collector_module\" version from \"$main_mod_file\"." + exit 1 + fi +} + +# Compare the collector main core version against all the collector component +# modules to verify that they are using this version as its dependency +check_collector_versions_correct() { + collector_module="$1" + collector_mod_version="$2" + incorrect_version=0 + mod_files=$(find . -type f -name "go.mod") + + # Loop through all the module files, checking the collector version + for mod_file in $mod_files; do + if grep -q "$collector_module" "$mod_file"; then + mod_line=$(grep "$collector_module" "$mod_file") + version=$(echo "$mod_line" | cut -d" " -f2) + + # To account for a module on its own 'require' line, + # the version field is shifted right by 1 + if [ "$version" == "$collector_module" ]; then + version=$(echo "$mod_line" | cut -d" " -f3) + fi + + if [ "$version" != "$collector_mod_version" ]; then + incorrect_version=$((incorrect_version+1)) + echo "Incorrect version \"$version\" of \"$collector_module\" is included in \"$mod_file\". It should be version \"$collector_mod_version\"." + fi + fi + done + + echo "There are $incorrect_version incorrect \"$collector_module\" version(s) in the module files." + if [ "$incorrect_version" -gt 0 ]; then + exit 1 + fi +} + +# Note space at end of string. This is so it filters for the exact string +# only and does not return string which contains this string as a substring. +COLLECTOR_MODULE="go.opentelemetry.io/collector " + +COLLECTOR_MODEL_MODULE="go.opentelemetry.io/collector/model" +MAIN_MOD_FILE="./go.mod" +COLLECTOR_MOD_VERSION=$(get_collector_version "$COLLECTOR_MODULE" "$MAIN_MOD_FILE") + +# Check the collector module version in each of the module files +check_collector_versions_correct "$COLLECTOR_MODULE" "$COLLECTOR_MOD_VERSION" + +# Check the collector model module version in each of the module files +check_collector_versions_correct "$COLLECTOR_MODEL_MODULE" "$COLLECTOR_MOD_VERSION" diff --git a/.github/workflows/scripts/set_release_tag.sh b/.github/workflows/scripts/set_release_tag.sh new file mode 100755 index 00000000..71017cc7 --- /dev/null +++ b/.github/workflows/scripts/set_release_tag.sh @@ -0,0 +1,5 @@ +TAG="${GITHUB_REF##*/}" +if [[ $TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+.* ]] +then + echo "::set-output name=tag::$TAG" +fi diff --git a/.github/workflows/scripts/setup_e2e_tests.sh b/.github/workflows/scripts/setup_e2e_tests.sh new file mode 100755 index 00000000..e7822fb9 --- /dev/null +++ b/.github/workflows/scripts/setup_e2e_tests.sh @@ -0,0 +1,18 @@ +TESTS="$(make -s -C testbed list-tests | xargs echo|sed 's/ /|/g')" +TESTS=(${TESTS//|/ }) +MATRIX="{\"include\":[" +curr="" +for i in "${!TESTS[@]}"; do +if (( i > 0 && i % 2 == 0 )); then + curr+="|${TESTS[$i]}" +else + if [ -n "$curr" ] && (( i>1 )); then + MATRIX+=",{\"test\":\"$curr\"}" + elif [ -n "$curr" ]; then + MATRIX+="{\"test\":\"$curr\"}" + fi + curr="${TESTS[$i]}" +fi +done +MATRIX+=",{\"test\":\"$curr\"}]}" +echo "::set-output name=loadtest_matrix::$MATRIX" diff --git a/.github/workflows/scripts/setup_stability_tests.sh b/.github/workflows/scripts/setup_stability_tests.sh new file mode 100755 index 00000000..21a6be2a --- /dev/null +++ b/.github/workflows/scripts/setup_stability_tests.sh @@ -0,0 +1,11 @@ +TESTS="$(make -s -C testbed list-stability-tests | xargs echo|sed 's/ /|/g')" + +TESTS=(${TESTS//|/ }) +MATRIX="{\"include\":[" +curr="" +for i in "${!TESTS[@]}"; do + curr="${TESTS[$i]}" + MATRIX+="{\"test\":\"$curr\"}," +done +MATRIX+="]}" +echo "::set-output name=stabilitytest_matrix::$MATRIX" diff --git a/.github/workflows/scripts/verify-dist-files-exist.sh b/.github/workflows/scripts/verify-dist-files-exist.sh new file mode 100755 index 00000000..9673d214 --- /dev/null +++ b/.github/workflows/scripts/verify-dist-files-exist.sh @@ -0,0 +1,23 @@ +files=( + bin/otelcontribcol_darwin_arm64 + bin/otelcontribcol_darwin_amd64 + bin/otelcontribcol_linux_arm64 + bin/otelcontribcol_linux_amd64 + bin/otelcontribcol_windows_amd64.exe + dist/otel-contrib-collector-*.aarch64.rpm + dist/otel-contrib-collector_*_amd64.deb + dist/otel-contrib-collector-*.x86_64.rpm + dist/otel-contrib-collector_*_arm64.deb + dist/otel-contrib-collector-*amd64.msi + +); +for f in "${files[@]}" +do + if [[ ! -f $f ]] + then + echo "$f does not exist." + echo "::set-output name=passed::false" + exit 0 + fi +done +echo "::set-output name=passed::true" diff --git a/.github/workflows/stability-tests.yml b/.github/workflows/stability-tests.yml new file mode 100644 index 00000000..3706479e --- /dev/null +++ b/.github/workflows/stability-tests.yml @@ -0,0 +1,95 @@ +name: stability-tests +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: + +jobs: + setup-environment: + runs-on: ubuntu-latest + outputs: + stabilitytest_matrix: ${{ steps.splitstabilitytest.outputs.stabilitytest_matrix}} + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + env: + cache-name: cache-go-modules + with: + path: | + /home/runner/go/pkg/mod + /home/runner/.cache/go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Cache Tools + id: tool-cache + uses: actions/cache@v3 + env: + cache-name: cache-tool-binaries + with: + path: /home/runner/go/bin + key: v1-tools-${{ runner.os }}-${{ hashFiles('./internal/tools/go.mod') }} + - name: Install dependencies + if: steps.module-cache.outputs.hit != 'true' + run: make -j2 gomoddownload + - name: Install Tools + if: steps.tool-cache.outputs.cache-hit != 'true' + run: make install-tools + - name: Split Stability Jobs + id: splitstabilitytest + run: ./.github/workflows/scripts/setup_stability_tests.sh + + stability-test: + # Stability tests disabled in the makefile, this job is currently running a noop make target + runs-on: ubuntu-latest + needs: [setup-environment] + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.setup-environment.outputs.stabilitytest_matrix) }} + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.17 + - name: Setup Go Environment + run: | + echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV + echo "$(go env GOPATH)/bin" >> $GITHUB_PATH + - name: Cache Go + id: module-cache + uses: actions/cache@v3 + env: + cache-name: cache-go-modules + with: + path: | + /home/runner/go/pkg/mod + /home/runner/.cache/go-build + key: v1-go-pkg-mod-${{ runner.os }}-${{ hashFiles('**/go.mod', '**/go.sum') }} + - name: Run Stability Tests + run: make stability-tests + env: + TEST_ARGS: "-test.run=${{ matrix.test }}" + - name: Create Test Result Archive + if: ${{ failure() || success() }} + continue-on-error: true + run: tar -cvf stabilitytest_results.tar testbed/stabilitytests/results + - name: Upload Test Results + if: ${{ success() }} + continue-on-error: true + uses: actions/upload-artifact@v3 + with: + name: stability-test-results + path: stabilitytest_results.tar diff --git a/.github/workflows/stale-pr.yaml b/.github/workflows/stale-pr.yaml new file mode 100644 index 00000000..babac258 --- /dev/null +++ b/.github/workflows/stale-pr.yaml @@ -0,0 +1,18 @@ +name: "Close stale pull requests" +on: + schedule: + - cron: "12 5 * * *" # arbitrary time not to DDOS GitHub + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v5 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-pr-message: 'This PR was marked stale due to lack of activity. It will be closed in 14 days.' + close-pr-message: 'Closed as inactive. Feel free to reopen if this PR is still being worked on.' + days-before-pr-stale: 14 + days-before-issue-stale: 730 + days-before-pr-close: 14 + days-before-issue-close: 30 diff --git a/.github/workflows/tracegen.yml b/.github/workflows/tracegen.yml new file mode 100644 index 00000000..74ed2506 --- /dev/null +++ b/.github/workflows/tracegen.yml @@ -0,0 +1,65 @@ +name: tracegen +on: + push: + branches: [ main ] + tags: + - 'v[0-9]+.[0-9]+.[0-9]+*' + pull_request: + +jobs: + build-dev: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Build tracegen + uses: docker/build-push-action@v2 + with: + context: tracegen + push: false + tags: ghcr.io/open-telemetry/opentelemetry-collector-contrib/tracegen:dev + + publish-master: + runs-on: ubuntu-latest + if: (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) && github.repository == 'open-telemetry/opentelemetry-collector-contrib' + permissions: + packages: write + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Push tracegen to Github packages + uses: docker/build-push-action@v2 + with: + context: tracegen + push: true + tags: ghcr.io/open-telemetry/opentelemetry-collector-contrib/tracegen:latest + + publish-stable: + runs-on: ubuntu-latest + if: startsWith(github.ref, 'refs/tags/v') && github.repository == 'open-telemetry/opentelemetry-collector-contrib' + permissions: + packages: write + steps: + - name: Checkout Repo + uses: actions/checkout@v3 + - name: Set Release Tag + id: github_tag + run: ./.github/workflows/scripts/set_release_tag.sh + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Push tracegen to Github packages + run: | + docker build tracegen -t ghcr.io/open-telemetry/opentelemetry-collector-contrib/tracegen:$RELEASE_TAG + docker push ghcr.io/open-telemetry/opentelemetry-collector-contrib/tracegen:$RELEASE_TAG + env: + RELEASE_TAG: ${{ steps.github_tag.outputs.tag }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..c55af97c --- /dev/null +++ b/.gitignore @@ -0,0 +1,36 @@ +local/ + +# GoLand IDEA +/.idea/ +*.iml + +# VS Code +.vscode +*.code-workspace + +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib +bin/ +dist/ + +# Emacs +*~ +\#*\# + +# Miscellaneous files +*.sw[op] +*.DS_Store + +# Coverage +coverage.txt +integration-coverage.txt +coverage.html +integration-coverage.html + +# Wix +*.wixobj +*.wixpdb diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 00000000..e7ffefac --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,120 @@ +# options for analysis running +run: + # default concurrency is a available CPU number + concurrency: 4 + + # timeout for analysis, e.g. 30s, 5m, default is 1m + timeout: 20m + + # exit code when at least one issue was found, default is 1 + issues-exit-code: 1 + + # include test files or not, default is true + tests: true + + # which dirs to skip: issues from them won't be reported; + # can use regexp here: generated.*, regexp is applied on full path; + # default value is empty list, but default dirs are skipped independently + # from this option's value (see skip-dirs-use-default). + skip-dirs: + - third_party + + # default is true. Enables skipping of directories: + # vendor$, third_party$, testdata$, examples$, Godeps$, builtin$ + skip-dirs-use-default: false + + # which files to skip: they will be analyzed, but issues from them + # won't be reported. Default value is empty list, but there is + # no need to include all autogenerated files, we confidently recognize + # autogenerated files. If it's not please let us know. + skip-files: + + # by default isn't set. If set we pass it to "go list -mod={option}". From "go help modules": + # If invoked with -mod=readonly, the go command is disallowed from the implicit + # automatic updating of go.mod described above. Instead, it fails when any changes + # to go.mod are needed. This setting is most useful to check that go.mod does + # not need updates, such as in a continuous integration and testing system. + # If invoked with -mod=vendor, the go command assumes that the vendor + # directory holds the correct copies of dependencies and ignores + # the dependency descriptions in go.mod. + modules-download-mode: readonly + +# output configuration options +output: + # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number" + format: colored-line-number + + # print lines of code with issue, default is true + print-issued-lines: true + + # print linter name in the end of issue text, default is true + print-linter-name: true + +# all available settings of specific linters +linters-settings: + govet: + # report about shadowed variables + check-shadowing: true + + # settings per analyzer + settings: + printf: # analyzer name, run `go tool vet help` to see all analyzers + funcs: # run `go tool vet help printf` to see available settings for `printf` analyzer + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf + + enable-all: true + # TODO: Enable this and fix the alignment issues. + disable: + - fieldalignment + + revive: + # minimal confidence for issues, default is 0.8 + min-confidence: 0.8 + gofmt: + # simplify code: gofmt with `-s` option, true by default + simplify: true + goimports: + # put imports beginning with prefix after 3rd-party packages; + # it's a comma-separated list of prefixes + local-prefixes: github.com/open-telemetry/opentelemetry-collector-contrib + misspell: + # Correct spellings using locale preferences for US or UK. + # Default is to use a neutral variety of English. + # Setting locale to US will correct the British spelling of 'colour' to 'color'. + locale: US + ignore-words: + - cancelled + - metre + - meter + - metres + - kilometre + - kilometres + +linters: + disable: + - errcheck + enable: + - exportloopref + - gofmt + - goimports + - gosec + - govet + - misspell + - revive + - staticcheck + - unconvert + - unparam + +issues: + # Excluding configuration per-path, per-linter, per-text and per-source + exclude-rules: + # Exclude some linters from running on tests files. + - text: "G404:" + linters: + - gosec + - text: "G402:" + linters: + - gosec diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..df7bd7cd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,2032 @@ +# Changelog + +## Unreleased + +### 🛑 Breaking changes 🛑 + +### 🚩 Deprecations 🚩 + +### 🚀 New components 🚀 + +### 💡 Enhancements 💡 + +### 🧰 Bug fixes 🧰 + +## v0.49.0 + +### 🛑 Breaking changes 🛑 + +- `filelogreceiver`, `journaldreceiver`, `syslogreceiver`, `tcplogreceiver`, `udplogreceiver`: + - Updated data model to align with stable logs data model, which includes various breaking changes. (#9139, #8835) + - A detailed [Upgrade Guide](https://github.com/open-telemetry/opentelemetry-log-collection/releases/tag/v0.28.0) is available in the log-collection v0.29.0 release notes. +- `datadogexporter`: Remove `OnlyMetadata` method from `Config` struct (#8980) +- `datadogexporter`: Remove `GetCensoredKey` method from `APIConfig` struct (#8980) +- `mongodbatlasreceiver`: Updated to uses newer metric builder which changed some metric and resource attributes (#9093) +- `dynatraceexporter`: Make `serialization` package `/internal` (#9097) +- `attributesprocessor`: Remove log names from filters (#9131) + +### 🚩 Deprecations 🚩 + +- `datadogexporter`: Deprecate `service` setting in favor of `service.name` semantic convention (#8784) +- `datadogexporter`: Deprecate `version` setting in favor of `service.version` semantic convention (#8784) +- `datadogexporter`: Deprecate `env` setting in favor of `deployment.environment` semantic convention (#9017) +- `datadogexporter`: Deprecate `GetHostTags` method from `TagsConfig` struct (#8975) +- `datadogexporter`: Deprecate `tags` setting in favor of `host_metadata::tags` (#9100) +- `datadogexporter`: Deprecate `send_metadata` setting in favor of `host_metadata::enabled` (#9100) +- `datadogexporter`: Deprecate `use_resource_metadata` setting in favor of `host_metadata::hostname_source` (#9100) +- `prometheusexecreceiver`: Deprecate prom_exec receiver (#9058) +- `fluentbitextension`: Deprecate Fluentbit extension (#9062) + +### 🚀 New components 🚀 + +- `riakreceiver`: Riak Metric Receiver (#8548) + +### 💡 Enhancements 💡 +- `splunkhecexporter`: Add support for batching traces (#8995) +- `hostmetricsreceiver`: Migrate Processes scraper to the Metrics builder (#8855) +- `tanzuobservabilityexporter`: Use resourcetotelemetry helper (#8338) +- Add `make crosslink` target to ensure replace statements are included in `go.mod` for all transitive dependencies within repository (#8822) +- `filestorageextension`: Change bbolt DB settings for better performance (#9004) +- `jaegerremotesamplingextension`: Add local and remote sampling stores (#8818) +- `attributesprocessor`: Add support to filter on log body (#8996) +- `prometheusremotewriteexporter`: Translate resource attributes to the target info metric (#8493) +- `prometheusexporter`: Add `job` and `instance` labels to metrics so they can be scraped with `honor_labels: true` (#9115) +- `podmanreceiver`: Add API timeout configuration option (#9014) +- `cmd/mdatagen`: Add `sem_conv_version` field to metadata.yaml that is used to set metrics SchemaURL (#9010) +- `splunkheceporter`: Add an option to disable log or profiling data (#9065) +- `windowsperfcountersreceiver`: Move code into separate package for use in other windowsperfcounter receivers (#9108) +- `datadogexporter`: Add `host_metadata` configuration section to configure host metadata export (#9100) +- `cmd/mdatagen`: Update documentation generated for attributes to list enumerated values and show the "value" that will be visible on metrics when it is different from the attribute key in metadata.yaml (#8983) +- `routingprocessor`: add option to drop resource attribute used for routing (#8990) + +### 🧰 Bug fixes 🧰 + +- `filestorageextension`: use correct bbolt options for compaction (#9134) +- `hostmetricsreceiver`: Use cpu times for time delta in cpu.utilization calculation (#8857) +- `dynatraceexporter`: Remove overly verbose stacktrace from certain logs (#8989) +- `googlecloudexporter`: fix the `exporter.googlecloud.OTLPDirect` fature-gate, which was not applied when the flag was provided (#9116) +- `signalfxexporter`: Fix bug to enable timeouts for correlating traces and metrics (#9101) +- `windowsperfcountersreceiver`: fix exported values being integers instead of doubles (#9138) +- `prometheusreceiver`: Fix issues with relabelling the `job` and `instance` labels. (#8780) + +## v0.48.0 + +### 💡 Enhancements 💡 + +- `k8seventsreceiver`: Add Api_version and resource_version (#8539) +- `datadogexporter`: Add `metrics::sums::cumulative_monotonic_mode` to specify export mode for cumulative monotonic sums (#8490) +- `dynatraceexporter`: add multi-instance deployment note to README.md (#8848) +- `resourcedetectionprocessor`: Add attribute allowlist (#8547) +- `datadogexporter`: Metrics payload data and Sketches payload data will be logged if collector is started in debug mode (#8929) +- `cmd/mdatagen`: Add resource attributes definition to metadata.yaml and move `pdata.Metrics` creation to the + generated code (#8555) + +### 🛑 Breaking changes 🛑 + +- `windowsperfcountersreceiver`: Added metrics configuration (#8376) +- `lokiexporter`: Remove deprecated LogRecord.name field (#8951) +- `splunkhecexporter`: Remove deprecated LogRecord.name field (#8951) + +### 🚩 Deprecations 🚩 + +- `datadogexporter`: Deprecate `OnlyMetadata` method from `Config` struct (#8359) +- `datadogexporter`: Deprecate `GetCensoredKey` method from `APIConfig` struct (#8830) +- `datadogexporter`: Deprecate `metrics::send_monotonic_counter` in favor of `metrics::sums::cumulative_monotonic_mode` (#8490) + +### 🚀 New components 🚀 + +- `sigv4authextension`: Enable component (#8518) + +## v0.47.0 + +### 💡 Enhancements 💡 + +- `googlecloudexporter`: Add Validate method in config (#8559) +- `attributesprocessor`: Add convert action (#7930) +- `attributesprocessor`: Add metric support (#8111) +- `prometheusremotewriteexporter`: Write-Ahead Log support enabled (#7304) +- `hostreceiver/filesystemscraper`: Add filesystem utilization (#8027) +- `hostreceiver/pagingscraper`: Add paging.utilization (#6221) +- `googlecloudexporter`: [Alpha] Translate metrics directly from OTLP to gcm using the `exporter.googlecloud.OTLPDirect` feature-gate (#7177) +- `simpleprometheusreceiver`: Add support for static labels (#7908) +- `spanmetricsprocessor`: Dropping the condition to replace _ with key_ as __ label is reserved and _ is not (#8057) +- `podmanreceiver`: Add container.runtime attribute to container metrics (#8262) +- `dockerstatsreceiver`: Add container.runtime attribute to container metrics (#8261) +- `tanzuobservabilityexporter`: instrumentation Library and Dropped Counts to Span Tags (#8120) +- `clickhouseexporter`: Implement consume log logic. (#9705) +- `influxdbexporter`: Add support for cumulative, non-monotonic metrics. (#8348) +- `oauth2clientauthextension`: Add support for EndpointParams (#7307) +- Add `NewMetricData` function to `MetricsBuilder` to consistently set instrumentation library name (#8255) +- `googlecloudpubsubreceiver` Added implementation of Google Cloud Pubsub receiver. (#8391) +- `googlecloudpubsubexporter` Added implementation of Google Cloud Pubsub exporter. (#8391) +- `coralogixexporter` Allow exporter timeout to be configured (#7957) +- `prometheusremotewriteexporter` support adding trace id and span id attached to exemplars (#8380) +- `influxdbexporter`: accept histogram metric missing infinity bucket. (#8462) +- `skywalkingreceiver`: Added implementation of Skywalking receiver. (#8549) +- `prometheusreceiver`: Fix staleness bug for histograms and summaries (#8561) + +### 🛑 Breaking changes 🛑 + +- `mongodbatlasreceiver`: rename mislabeled attribute `memory_state` to correct `disk_status` on partition disk metrics (#7747) +- `mongodbatlasreceiver`: Correctly set initial lookback for querying mongodb atlas api (#8246) +- `nginxreceiver`: instrumentation name updated from `otelcol/nginx` to `otelcol/nginxreceiver` (#8255) +- `postgresqlreceiver`: instrumentation name updated from `otelcol/postgresql` to `otelcol/postgresqlreceiver` (#8255) +- `redisreceiver`: instrumentation name updated from `otelcol/redis` to `otelcol/redisreceiver` (#8255) +- `apachereceiver`: instrumentation name updated from `otelcol/apache` to `otelcol/apachereceiver` () +- `couchdbreceiver`: instrumentation name updated from `otelcol/couchdb` to `otelcol/couchdbreceiver` (#8366) +- `prometheusreceiver` Change resource attributes on metrics: `instance` -> `service.instance.id`, `host.name` -> `net.host.name`, `port` -> `net.host.port`, `scheme` -> `http.scheme`, `job` removed (#8266) +- `prometheusremotewriteexporter` Use `service.*` resource attributes instead of `job` and `instance` resource attributes when adding job and instance labels to metrics (#8266) +- `mysqlreceiver`: instrumentation name updated from `otel/mysql` to `otelcol/mysqlreceiver` (#8387) +- `zookeeperreceiver`: instrumentation name updated from `otelcol/zookeeper` to `otelcol/zookeeperreceiver` (#8389) +- `coralogixexporter`: Create dynamic subsystem name (#7957) + - Deprecate configuration changed. Dynamic subsystem name from traces service name property. +- `rabbitmqreceiver`: instrumentation name updated from `otelcol/rabbitmq` to `otelcol/rabbitmqreceiver` (#8400) + +### 🧰 Bug fixes 🧰 + +- `zipkinexporter`: Set "error" tag value when status is set to error (#8187) +- `prometheusremotewriteexporter`: Correctly handle metric labels which collide after sanitization (#8378) +- `prometheusremotewriteexporter`: Drop labels when exemplar attributes exceed the max number of characters (#8379) +- `k8sclusterreceiver`: Add support to enable k8s node and container cpu metrics to be reported as double values (#8245) + - Use "--feature-gates=receiver.k8sclusterreceiver.reportCpuMetricsAsDouble" to enable reporting node and container + cpu metrics as a double values. +- `tanzuobservabilityexporter`: Fix a typo in Instrumentation Library name and version tags (#8384) +- `logreceivers`: Fix an issue where receiver would sometimes fail to build using Go 1.18 (#8521) +- `awsxrayreceiver`: Add defaults for optional stack frame parameters (#8790) + +### 🚩 Deprecations 🚩 + +- `datadogexporter`: Deprecate automatic environment variable detection (#8397) + +### 🚀 New components 🚀 +- `sigv4authextension`: New Component: Sigv4 Authenticator Extension (#8263) + +## v0.46.0 + +### 💡 Enhancements 💡 + +- `internal/stanza`: Export metrics from Stanza receivers (#8025) +- `hostreceiver/pagingscraper`: Migrate the scraper to the mdatagen metrics builder (#7139) +- Do not drop zero trace/span id spans in the jaeger conversion (#7946) +- Upgrade to use semantic conventions 1.6.1 (#7926) +- `dynatraceexporter`: Validate QueueSettings and perform config validation in Validate() instead (#8020) +- `sapmexporter`: Add validation for `sending_queue` setting (#8023) +- `signalfxexporter`: Add validation for `sending_queue` setting (#8026) +- `internal/stanza`: Add support for arbitrary attribute types (#8081) +- `resourcedetectionprocessor`: Add confighttp.HTTPClientSettings To Resource Detection Config Fixes (#7397) +- `hostmetricsreceiver`: Add cpu.utilization metrics to cpu scrapper (#7130) +- `honeycombexporter`: Add validation for `sending_queue` setting (#8113) +- `routingprocessor`: Expand error handling on failure to build exporters (#8125) +- `skywalkingreceiver`: Add new skywalking receiver component folder and structure (#8107) +- `groupbyattrsprocesor`: Allow empty keys, which allows to use the processor for compaction (#7793) +- `datadogexporter`: Add rbac to example k8s manifest file (#8186) +- `splunkhecexporter`: Add validation for `sending_queue` setting (#8256) + +### 🛑 Breaking changes 🛑 + +- Remove deprecated functions from jaeger translator (#8032) +- `internal/stanza`: Remove `write_to` setting from input operators (#8081) +- `mongodbatlasreceiver`: rename `mongodb.atlas.*` attributes to `mongodb_atlas.*` adhering to naming guidelines. Adding 3 new attributes (#7960) + +### 🧰 Bug fixes 🧰 + +- `prometheusreceiver`: Fix segfault that can occur after receiving stale metrics (#8056) +- `filelogreceiver`: Fix issue where logs could occasionally be duplicated (#8123) +- `prometheusremotewriteexporter`: Fix empty non-string resource attributes (#8116) + +### 🚀 New components 🚀 + +## v0.45.1 + +### 💡 Enhancements 💡 + +- `sumologicexporter`: Move validation to Config (#7936) +- `elasticsearchexporter`: Fix crash with batch processor (#7953). +- `splunkhecexporter`: Batch metrics payloads (#7760) +- `tanzuobservabilityexporter`: Add internal SDK metric tag (#7826) +- `hostreceiver/processscraper`: Migrate the scraper to the mdatagen metrics builder (#7287) + +### 🧰 Bug fixes 🧰 + +- `awsprometheusremotewriteexporter`: fix dependencies issue (#7963) + +### 🚀 New components 🚀 + +- `awsfirehose` receiver: Add AWS Kinesis Data Firehose Receiver (#7918) + +## v0.45.0 + +### 💡 Enhancements 💡 + +- `hostreceiver/filesystemscraper`: Migrate the scraper to the mdatagen metrics builder (#7772) +- `hostreceiver/memoryscraper`: Migrate the scraper to the mdatagen metrics builder (#7312) +- `lokiexporter`: Use record attributes as log labels (#7569) +- `routingprocessor`: Do not err on failure to build exporters (#7423) +- `apachereceiver`: Update to mdatagen v2 (#7573) +- `datadogexporter`: Don't send host metadata if hostname is empty (#7426) +- `datadogexporter`: Add insecure_skip_verify flag to configuration (#7422) +- `coralogixexporter`: Update readme (#7785) +- `awscloudwatchlogsexporter`: Remove name from aws cloudwatch logs exporter (#7554) +- `tanzuobservabilityexporter`: Update OTel Collector's Exporter to match WF Proxy Handling of source (#7929) +- `hostreceiver/memoryscraper`: Add memory.utilization (#6221) +- `awskinesisexporter`: Add Queue Config Validation AWS Kinesis Exporter (#7835) +- `elasticsearchexporter`: Remove usage of deprecated LogRecord.Name field (#7829). +- `loadbalancingexporter`: Allow non-exist hostname on startup (#7935) +- `datadogexporter`: Use exact sum, count and average on Datadog distributions (#7830) +- `storage/filestorage`: add optional compaction to filestorage (#7768) +- `tanzuobservabilityexporter`: Add attributes from the Resource to the resulting WF metric tags & set `source` value in WF metric (#8101) + +### 🛑 Breaking changes 🛑 + +- Use go mod compat, drops support for reproducibility with go 1.16 (#7915) +- `apachereceiver`: Update instrumentation library name from `otel/apache` to `otelcol/apache` (#7754) +- `pkg/translator/prometheusremotewrite`: Cleanup prw translator public functions (#7776) +- `prometheusreceiver`: The OpenCensus-based metric conversion pipeline has + been removed. + - The `receiver.prometheus.OTLPDirect` feature gate has been removed as + the direct pipeline is the only remaining pipeline. +- `translator/jaeger`: Cleanup jaeger translator function names (#7775) + - Deprecate old funcs with Internal word. +- `mysqlreceiver`: Update data model and names for several metrics (#7924) + - Change all metrics to Int values + - Remove `mysql.buffer_pool_pages`. Replace with: + - `mysql.buffer_pool.pages` + - `mysql.buffer_pool.data_pages` + - `mysql.buffer_pool.page_flushes` + - Remove `mysql.buffer_pool_size`. Replace with: + - `mysql.buffer_pool.limit` + - `mysql.buffer_pool.usage` + - Rename `mysql.buffer_pool_operations` to `mysql.buffer_pool.operations` + +### 🚩 Deprecations 🚩 + +- Deprecated log_names setting from filter processor. (#7552) + +### 🧰 Bug fixes 🧰 + + - `tailsamplingprocessor`: "And" policy only works as a sub policy under a composite policy (#7590) + - `prometheusreceiver`: Correctly map description and units when converting + Prometheus metadata directly to pdata. (#7748) + - `sumologicexporter`: fix exporter panics on malformed histogram (#7548) +- `awsecscontainermetrics`: CPU Reserved is now 1024/vCPU for ECS Container Insights (#6734) + +### 🚀 New components 🚀 + +- `clickhouse` exporter: Add ClickHouse Exporter (#6907) +- `pkg/translator/signalfx`: Extract signalfx to metrics conversion in a separate package (#7778) + - Extract FromMetrics to SignalFx translator package (#7823) + +## v0.44.0 + +### 💡 Enhancements 💡 + +- `kafkaexporter`: Add compression and flush max messages options. +- `dynatraceexporter`: Write error logs using plugin logger (#7360) +- `dynatraceexporter`: Fix docs for TLS settings (#7568) +- `tanzuobservabilityexporter`: Turn on metrics exporter (#7281) +- `attributesprocessor` `resourceprocessor`: Add `from_context` value source +- `resourcedetectionprocessor`: check cluster config to verify resource is on aws for eks resources (#7186) +- `awscloudwatchlogsexporter`: enable awscloudwatchlogsexporter which accepts and exports log data (#7297) +- `translator/prometheusremotewrite`: add a new module to help translate data from OTLP to Prometheus Remote Write (#7240) +- `azuremonitorexporter`: In addition to traces, export logs to Azure Application Insights (#7403) +- `jmxreceiver`: Added `additional_jars` configuration option to launch JMX Metric Gatherer JAR with extended `CLASSPATH` (#7378) +- `awscontainerinsightreceiver`: add full pod name when configured to AWS Container Insights Receiver (#7415) +- `hostreceiver/loadscraper`: Migrate the scraper to the mdatagen metrics builder (#7288) +- `awsecscontainermetricsreceiver`: Rename attributes to follow semantic conventions (#7425) +- `datadogexporter`: Always map conventional attributes to tags (#7185) +- `mysqlreceiver`: Add golden files for integration test (#7303) +- `nginxreceiver`: Standardize integration test (#7515) +- `mysqlreceiver`: Update to use mdatagen v2 (#7507) +- `postgresqlreceiver`: Add integration tests (#7501) +- `apachereceiver`: Add integration test (#7517) +- `mysqlreceiver`: Use scrapererror to report errors (#7513) +- `postgresreceiver`: Update to mdatagen v2 (#7503) +- `nginxreceiver`: Update to mdatagen v2 (#7549) +- `datadogexporter`: Fix traces exporter's initialization log (#7564) +- `tailsamplingprocessor`: Add And sampling policy (#6910) +- `coralogixexporter`: Add Coralogix Exporter (#7383) +- `prometheusexecreceiver`: Add default value for `scrape_timeout` option (#7587) + +### 🛑 Breaking changes 🛑 + +- `resourcedetectionprocessor`: Update `os.type` attribute values according to semantic conventions (#7544) +- `awsprometheusremotewriteexporter`: Deprecation notice; may be removed after v0.49.0 + - Switch to using the `prometheusremotewriteexporter` + `sigv4authextension` instead + +### 🧰 Bug fixes 🧰 + +- `resourcedetectionprocessor`: fix `meta` allow list excluding keys with nil values (#7424) +- `postgresqlreceiver`: Fix issue where empty metrics could be returned after failed connection (#7502) +- `resourcetotelemetry`: Ensure resource attributes are added to summary + and exponential histogram data points. (#7523) + +### 🚩 Deprecations 🚩 + +- Deprecated otel_to_hec_fields.name setting from splunkhec exporter. (#7560) + +## v0.43.0 + +### 💡 Enhancements 💡 + +- `coralogixexporter`: First implementation of Coralogix Exporter (#6816) +- `cloudfoundryreceiver`: Enable Cloud Foundry client (#7060) +- `elasticsearchexporter`: add elasticsearchexporter to the components exporter list (#6002) +- `elasticsearchreceiver`: Add metric metadata (#6892) +- `elasticsearchreceiver`: Use same metrics as JMX receiver for JVM metrics (#7160) +- `elasticsearchreceiver`: Implement scraping logic (#7174) +- `datadogexporter`: Add http.status_code tag to trace stats (#6889) +- `datadogexporter`: Add configuration option to use OTel span name into the Datatog resource name (#6611) +- `mongodbreceiver`: Add initial client code to the component (#7125) +- `tanzuobservabilityexporter`: Support delta histograms (#6897) +- `awscloudwatchlogsexporter`: Use cwlogs package to export logs (#7152) +- `mysqlreceiver`: Add the receiver to available components (#7078) +- `tanzuobservabilityexporter`: Documentation for the memory_limiter configuration (#7164) +- `dynatraceexporter`: Do not shut down exporter when metrics ingest module is temporarily unavailable (#7161) +- `mongodbreceiver`: Add metric metadata (#7163) +- `mongodbreceiver`: Add metric scraping (#7175) +- `postgresqlreceiver`: add the receiver to available components (#7079) +- `rabbitmqreceiver`: Add scraper logic (#7299) +- `tanzuobservability exporter`: Support summary metrics (#7121) +- `mongodbatlasreceiver`: Add retry and backoff to HTTP client (#6943) +- Use Jaeger gRPC instead of Thrift in the docker-compose example (#7243) +- `tanzuobservabilityexporter`: Support exponential histograms (#7127) +- `receiver_creator`: Log added and removed endpoint env structs (#7248) +- `prometheusreceiver`: Use the OTLP data conversion path by default. (#7282) + - Use `--feature-gates=-receiver.prometheus.OTLPDirect` to re-enable the + OpenCensus conversion path. +- `extension/observers`: Correctly set image and tag on container endpoints (#7279) +- `tanzuobservabilityexporter`: Document how to enable memory_limiter (#7286) +- `hostreceiver/networkscraper`: Migrate the scraper to the mdatagen metrics builder (#7048) +- `hostmetricsreceiver`: Add MuteProcessNameError config flag to mute specific error reading process executable (#7176) +- `scrapertest`: Improve comparison logic (#7305) +- `hostmetricsreceiver`: add `cpu_average` option for load scraper to report the average cpu load (#6999) +- `scrapertest`: Add comparison option to ignore specific attributes (#6519) +- `tracegen`: Add option to pass in custom headers to export calls via command line (#7308) +- `tracegen`: Provide official container images (#7179) +- `scrapertest`: Add comparison function for pdata.Metrics (#7400) +- `prometheusremotewriteexporter` : Dropping the condition to replace _ with key_ as __ label is reserved and _ is not (#7112) + +### 🛑 Breaking changes 🛑 + +- `tanzuobservabilityexporter`: Remove status.code +- `tanzuobservabilityexporter`: Use semantic conventions for status.message (#7126) +- `k8sattributesprocessor`: Move `kube` and `observability` packages to `internal` folder (#7159) +- `k8sattributesprocessor`: Unexport processor `Option`s (#7311) +- `zookeeperreceiver`: Refactored metrics to have correct units, types, and combined some metrics via attributes. (#7280) +- `prometheusremotewriteexporter`: `PRWExporter` struct and `NewPRWExporter()` + function are now unexported. (#TBD) +- `newrelicexporter` marked as deprecated (#7284) + +### 🚀 New components 🚀 + +- `rabbitmqreceiver`: Establish codebase for RabbitMQ metrics receiver (#7239) +- Add `basicauth` extension (#7167) +- `k8seventsreceiver`: Implement core logic (#6885) + +### 🧰 Bug fixes 🧰 + +- `k8sattributeprocessor`: Parse IP out of net.Addr to correctly tag k8s.pod.ip (#7077) +- `k8sattributeprocessor`: Process IP correctly for net.Addr instances that are not typed (#7133) +- `mdatagen`: Fix validation of `enabled` field in metadata.yaml (#7166) +- `elasticsearch`: Fix timestamp for each metric being startup time (#7255) +- `prometheusremotewriteexporter`: Fix index out of range panic caused by expiring metrics (#7149) +- `resourcedetection`: Log the error when checking for ec2metadata availability (#7296) + +## v0.42.0 + +### 💡 Enhancements 💡 + +- `couchbasereceiver`: Add couchbase client (#7122) +- `couchdbreceiver`: Add couchdb scraper (#7131) +- `couchdbreceiver`: Add couchdb client (#6880) +- `elasticsearchreceiver`: Implement scraper client (#7019) +- `couchdbreceiver`: Add metadata metrics (#6878) +- `prometheusremotewriteexporter`: Handling Staleness flag from OTLP (#6679) +- `prometheusexporter`: Handling Staleness flag from OTLP (#6805) +- `prometheusreceiver`: Set OTLP no-data-present flag for stale scraped metrics. (#7043) +- `mysqlreceiver`: Add Integration test (#6916) +- `datadogexporter`: Add compatibility with ECS Fargate semantic conventions (#6670) +- `k8s_observer`: discover k8s.node endpoints (#6820) +- `redisreceiver`: Add missing description fields to keyspace metrics (#6940) +- `redisreceiver`: Set start timestamp uniformly for gauge and sum metrics (#6941) +- `kafkaexporter`: Allow controlling Kafka acknowledgment behaviour (#6301) +- `lokiexporter`: Log the first part of the http body on failed pushes to loki (#6946) +- `resourcedetectionprocessor`: add the [consul](https://www.consul.io/) detector (#6382) +- `awsemfexporter`: refactor cw_client logic into separate `cwlogs` package (#7072) +- `prometheusexporter`: Dropping the condition to replace _ with key_ as __ label is reserved and _ is not (#7506) + +### 🛑 Breaking changes 🛑 + +- `memcachedreceiver`: Update metric names (#6594) +- `memcachedreceiver`: Fix some metric units and value types (#6895) +- `sapm` receiver: Use Jaeger status values instead of OpenCensus (#6682) +- `jaeger` receiver/exporter: Parse/set Jaeger status with OTel spec values (#6682) +- `awsecscontainermetricsreceiver`: remove tag from `container.image.name` (#6436) +- `k8sclusterreceiver`: remove tag from `container.image.name` (#6436) + +### 🚀 New components 🚀 + +- `ecs_task_observer`: Discover running containers in AWS ECS tasks (#6894) +- `mongodbreceiver`: Establish codebase for MongoDB metrics receiver (#6972) +- `couchbasereceiver`: Establish codebase for Couchbase metrics receiver (#7046) +- `dbstorage`: New experimental dbstorage extension (#7061) +- `redactionprocessor`: Remove sensitive data from traces (#6495) + +### 🧰 Bug fixes 🧰 + +- `ecstaskobserver`: Fix "Incorrect conversion between integer types" security issue (#6939) +- Fix typo in "direction" metrics attribute description (#6949) +- `zookeeperreceiver`: Fix issue where receiver could panic during shutdown (#7020) +- `prometheusreceiver`: Fix metadata fetching when metrics differ by trimmable suffixes (#6932) +- Sanitize URLs being logged (#7021) +- `prometheusreceiver`: Fix start time tracking for long scrape intervals (#7053) +- `signalfxexporter`: Don't use syscall to avoid compilation errors on some platforms (#7062) +- `tailsamplingprocessor`: Add support for new policies as composite sub-policies (#6975) + +### 💡 Enhancements 💡 + +- `lokiexporter`: add complete log record to body (#6619) +- `k8sclusterreceiver` add `container.image.tag` attribute (#6436) +- `spanmetricproccessor`: use an LRU cache for the cached Dimensions key-value pairs (#2179) +- `skywalkingexporter`: add skywalking metrics exporter (#6528) +- `deltatorateprocessor`: add int counter support (#6982) +- `filestorageextension`: document default values (#7022) +- `redisreceiver`: Migrate the scraper to the mdatagen metrics builder (#6938) + +## v0.41.0 + +### 🛑 Breaking changes 🛑 + +- None + +### 🚀 New components 🚀 + +- `asapauthextension` (#6627) +- `mongodbatlasreceiver` (#6367) + +### 🧰 Bug fixes 🧰 + +- `filestorageextension`: fix panic when configured directory cannot be accessed (#6103) +- `hostmetricsreceiver`: fix set of attributes for system.cpu.time metric (#6422) +- `k8sobserver`: only record pod endpoints for running pods (#5878) +- `mongodbatlasreceiver`: fix attributes fields in metadata.yaml (#6440) +- `prometheusexecreceiver`: command line processing on Windows (#6145) +- `spanmetricsprocessor`: fix exemplars support (#6140) +- Remap arm64 to aarch64 on rpm/deb packages (#6635) + +### 💡 Enhancements 💡 + +- `datadogexporter`: do not use attribute localhost-like hostnames (#6477) +- `datadogexporter`: retry per network call (#6412) +- `datadogexporter`: take hostname into account for cache (#6223) +- `exporter/lokiexporter`: adding a feature for loki exporter to encode JSON for log entry (#5846) +- `googlecloudspannerreceiver`: added fallback to ADC for database connections. (#6629) +- `googlecloudspannerreceiver`: added parsing only distinct items for sample lock request label. (#6514) +- `googlecloudspannerreceiver`: added request tag label to metadata config for top query stats. (#6475) +- `googlecloudspannerreceiver`: added sample lock requests label to the top lock stats metrics. (#6466) +- `googlecloudspannerreceiver`: added transaction tag label to metadata config for top transaction stats. (#6433) +- `groupbyattrsprocessor`: added support for metrics signal (#6248) +- `hostmetricsreceiver`: ensure SchemaURL is set (#6482) +- `kubeletstatsreceiver`: add support for read-only kubelet endpoint (#6488) +- `mysqlreceiver`: enable native authentication (#6628) +- `mysqlreceiver`: remove requirement for password on MySQL (#6479) +- `receiver/prometheusreceiver`: do not add host.name to metrics from localhost/unspecified targets (#6476) +- `spanmetricsprocessor`: add setStatus operation (#5886) +- `splunkhecexporter`: remove duplication of host.name attribute (#6527) +- `tanzuobservabilityexporter`: add consumer for sum metrics. (#6385) +- Update log-collection library to v0.23.0 (#6593) + +## v0.40.0 + +### 🛑 Breaking changes 🛑 + +- `tencentcloudlogserviceexporter`: change `Endpoint` to `Region` to simplify configuration (#6135) + +### 🚀 New components 🚀 + +- Add `memcached` receiver (#5839) + +### 🧰 Bug fixes 🧰 + +- Fix token passthrough for HEC (#5435) +- `datadogexporter`: Fix missing resource attributes default mapping when resource_attributes_as_tags: false (#6359) +- `tanzuobservabilityexporter`: Log and report missing metric values. (#5835) +- `mongodbatlasreceiver`: Fix metrics metadata (#6395) + +### 💡 Enhancements 💡 + +- `awsprometheusremotewrite` exporter: Improve error message when failing to sign request +- `mongodbatlas`: add metrics (#5921) +- `healthcheckextension`: Add path option (#6111) +- Set unprivileged user to container image (#6380) +- `k8sclusterreceiver`: Add allocatable type of metrics (#6113) +- `observiqexporter`: Allow Dialer timeout to be configured (#5906) +- `routingprocessor`: remove broken debug log fields (#6373) +- `prometheusremotewriteexporter`: Add exemplars support (#5578) +- `fluentforwardreceiver`: Convert attributes with nil value to AttributeValueTypeEmpty (#6630) + +## v0.39.0 + +### 🛑 Breaking changes 🛑 + +- `httpdreceiver` renamed to `apachereceiver` to match industry standards (#6207) +- `tencentcloudlogserviceexporter` change `Endpoint` to `Region` to simplify configuration (#6135) + +### 🚀 New components 🚀 + +- Add `postgresqlreceiver` config and factory (#6153) +- Add TencentCloud LogService exporter `tencentcloudlogserviceexporter` (#5722) +- Restore `jaegerthrifthttpexporter` (#5666) +- Add `skywalkingexporter` (#5690, #6114) + +### 🧰 Bug fixes 🧰 + +- `datadogexporter`: Improve cumulative metrics reset detection using `StartTimestamp` (#6120) +- `mysqlreceiver`: Address issues in shutdown function (#6239) +- `tailsamplingprocessor`: End go routines during shutdown (#5693) +- `googlecloudexporter`: Update google cloud exporter to correctly close the metric exporter (#5990) +- `statsdreceiver`: Fix the summary point calculation (#6155) +- `datadogexporter` Correct default value for `send_count_sum_metrics` (#6130) + +### 💡 Enhancements 💡 + +- `datadogexporter`: Increase default timeout to 15 seconds (#6131) +- `googlecloudspannerreceiver`: Added metrics cardinality handling for Google Cloud Spanner receiver (#5981, #6148, #6229) +- `mysqlreceiver`: Mysql add support for different protocols (#6138) +- `bearertokenauthextension`: Added support of Bearer Auth for HTTP Exporters (#5962) +- `awsxrayexporter`: Fallback to rpc.method for segment operation when aws.operation missing (#6231) +- `healthcheckextension`: Add new health check feature for collector pipeline (#5643) +- `datadogexporter`: Always add current hostname (#5967) +- `k8sattributesprocessor`: Add code to fetch all annotations and labels by specifying key regex (#5780) +- `datadogexporter`: Do not rely on collector to resolve envvar when possible to resolve them (#6122) +- `datadogexporter`: Add container tags to attributes package (#6086) +- `datadogexporter`: Preserve original TraceID (#6158) +- `prometheusreceiver`: Enhance prometheus receiver logger to determine errors, test real e2e usage (#5870) +- `awsxrayexporter`: Added support for AWS AppRunner origin (#6141) + +## v0.38.0 + +### 🛑 Breaking changes 🛑 + +- `datadogexporter` Make distributions the default histogram export option. (#5885) +- `redisreceiver` Update Redis receiver's metric names. (#5837) +- Remove `scraperhelper` from contrib, use the core version. (#5826) + +### 🚀 New components 🚀 + +- `googlecloudspannerreceiver` Added implementation of Google Cloud Spanner receiver. (#5727) +- `awsxrayproxy` Wire up awsxrayproxy extension. (#5747) +- `awscontainerinsightreceiver` Enable AWS Container Insight receiver. (#5960) + +### 🧰 Bug fixes 🧰 + +- `statsdreceiver`: fix start timestamp / temporality for counters. (#5714) +- Fix security issue related to github.com/tidwall/gjson. (#5936) +- `datadogexporter` Fix cumulative histogram handling in distributions mode (#5867) +- `datadogexporter` Skip nil sketches (#5925) + +### 💡 Enhancements 💡 + +- Extend `kafkareceiver` configuration capabilities. (#5677) +- Convert `mongodbatlas` receiver to use scraperhelper. (#5827) +- Convert `dockerstats` receiver to use scraperhelper. (#5825) +- Convert `podman` receiver to use scraperhelper. (#5822) +- Convert `redisreceiver` to use scraperhelper. (#5796) +- Convert `kubeletstats` receiver to use scraperhelper. (#5821) +- `googlecloudspannerreceiver` Migrated Google Cloud Spanner receiver to scraper approach. (#5868) +- `datadogexporter` Use a `Consumer` interface for decoupling from zorkian's package. (#5315) +- `mdatagen` - Add support for extended metric descriptions (#5688) +- `signalfxexporter` Log datapoints option. (#5689) +- `cumulativetodeltaprocessor`: Update cumulative to delta. (#5772) +- Update configuration default values in log receivers docs. (#5840) +- `fluentforwardreceiver`: support more complex fluent-bit objects. (#5676) +- `datadogexporter` Remove spammy logging. (#5856) +- `datadogexporter` Remove obsolete report_buckets config. (#5858) +- Improve performance of metric expression matcher. (#5864) +- `tanzuobservabilityexporter` Introduce metricsConsumer and gaugeMetricConsumer. (#5426) +- `awsxrayexporter` rpc.system has priority to determine aws namespace. (#5833) +- `tailsamplingprocessor` Add support for composite sampling policy to the tailsampler. (#4958) +- `kafkaexporter` Add support for AWS_MSK_IAM SASL Auth (#5763) +- Refactor the client Authenticators for the new "ClientAuthenticator" interfaces (#5905) +- `mongodbatlasreceiver` Add client wrapper for MongoDB Atlas support (#5386) +- `redisreceiver` Update Redis config options (#5861) +- `routingprocessor`: allow routing for all signals (#5869) +- `extension/observer/docker` add ListAndWatch to observer (#5851) + +## v0.37.1 + +### 🧰 Bug fixes 🧰 + +- Fixes a problem with v0.37.0 which contained dependencies on v0.36.0 components. They should have been updated to v0.37.0. + +## v0.37.0 + +### 🚀 New components 🚀 + +- [`journald` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/journaldreceiver) to parse Journald events from systemd journal using the [opentelemetry-log-collection](https://github.com/open-telemetry/opentelemetry-log-collection) library + +### 🛑 Breaking changes 🛑 + +- Remove squash on configtls.TLSClientSetting for splunkhecexporter (#5541) +- Remove squash on configtls.TLSClientSetting for elastic components (#5539) +- Remove squash on configtls.TLSClientSetting for observiqexporter (#5540) +- Remove squash on configtls.TLSClientSetting for AWS components (#5454) +- Move `k8sprocessor` to `k8sattributesprocessor`. +- Rename `k8s_tagger` configuration `k8sattributes`. +- filelog receiver: use empty value for `SeverityText` field instead of `"Undefined"` (#5423) +- Rename `configparser.ConfigMap` to `config.Map` +- Rename `pdata.AggregationTemporality*` to `pdata.MetricAggregationTemporality*` +- Remove deprecated `batchpertrace` package/module (#5380) + +### 💡 Enhancements 💡 + +- `k8sattributes` processor: add container metadata enrichment (#5467, #5572) +- `resourcedetection` processor: Add an option to force using hostname instead of FQDN (#5064) +- `dockerstats` receiver: Move docker client into new shared `internal/docker` (#4702) +- `spanmetrics` processor: + - Add exemplars to metrics (#5263) + - Support resource attributes in metrics dimensions (#4624) +- `filter` processor: + - Add log filtering by `regexp` type filters (#5237) + - Add record level log filtering (#5418) +- `dynatrace` exporter: Handle non-gauge data types (#5056) +- `datadog` exporter: + - Add support for exporting histograms as sketches (#5082) + - Scrub sensitive information from errors (#5575) + - Add option to send instrumentation library metadata tags with metrics (#5431) +- `podman` receiver: Add `api_version`, `ssh_key`, and `ssh_passphrase` config options (#5430) +- `signalfx` exporter: + - Add `max_connections` config option (#5432) + - Add dimension name to log when value > 256 chars (#5258) + - Discourage setting of endpoint path (#4851) +- `kubeletstats` receiver: Convert to pdata instead of using OpenCensus (#5458) +- `tailsampling` processor: Add `invert_match` config option to `string_attribute` policy (#4393) +- `awsemf` exporter: Add a feature flag in UserAgent for AWS backend to monitor the adoptions (#5178) +- `splunkhec` exporter: Handle explicitly NaN and Inf values (#5581) +- `hostmetrics` receiver: + - Collect more process states in processes scraper (#4856) + - Add device label to paging scraper (#4854) +- `awskinesis` exporter: Extend to allow for dynamic export types (#5440) + +### 🧰 Bug fixes 🧰 + +- `datadog` exporter: + - Fix tags on summary and bucket metrics (#5416) + - Fix cache key generation for cumulative metrics (#5417) +- `resourcedetection` processor: Fix failure to start collector if at least one detector returns an error (#5242) +- `prometheus` exporter: Do not record obsreport calls (#5438) +- `prometheus` receiver: Metric type fixes to match Prometheus functionality (#4865) +- `sentry` exporter: Fix sentry tracing (#4320) +- `statsd` receiver: Set quantiles for metrics (#5647) + +## v0.36.0 + +### 🛑 Breaking changes 🛑 + +- `filter` processor: The configs for `logs` filter processor have been changed to be consistent with the `metrics` filter processor. (#4895) +- `splunk_hec` receiver: + - `source_key`, `sourcetype_key`, `host_key` and `index_key` have now moved under `hec_metadata_to_otel_attrs` (#4726) + - `path` field on splunkhecreceiver configuration is removed: We removed the `path` attribute as any request going to the Splunk HEC receiver port should be accepted, and added the `raw_path` field to explicitly map the path accepting raw HEC data. (#4951) +- feat(dynatrace): tags is deprecated in favor of default_dimensions (#5055) + +### 💡 Enhancements 💡 + +- `filter` processor: Add ability to `include` logs based on resource attributes in addition to excluding logs based on resource attributes for strict matching. (#4895) +- `kubelet` API: Add ability to create an empty CertPool when the system run environment is windows +- `JMX` receiver: Allow JMX receiver logging level to be configured (#4898) +- `datadog` exporter: Export histograms as in OpenMetrics Datadog check (#5065) +- `dockerstats` receiver: Set Schema URL (#5239) +- Rename memorylimiter -> memorylimiterprocessor (#5262) +- `awskinesis` exporter: Refactor AWS kinesis exporter to be synchronous (#5248) + +## v0.35.0 + +### 🛑 Breaking changes 🛑 + +- Rename configparser.Parser to configparser.ConfigMap (#5070) +- Rename TelemetryCreateSettings -> TelemetrySettings (#5169) + +### 💡 Enhancements 💡 + +- chore: update influxdb exporter and receiver (#5058) +- chore(dynatrace): use payload limit from api constants (#5077) +- Add documentation for filelog's new force_flush_period parameter (#5066) +- Reuse the gzip reader with a sync.Pool (#5145) +- Add a trace observer when splunkhecreceiver is used for logs (#5063) +- Remove usage of deprecated pdata.AttributeValueMapToMap (#5174) +- Podman Stats Receiver: Receiver and Metrics implementation (#4577) + +### 🧰 Bug fixes 🧰 + +- Use staleness markers generated by prometheus, rather than making our own (#5062) +- `datadogexporter` exporter: skip NaN and infinite values (#5053) + +## v0.34.0 + +### 🚀 New components 🚀 + +- [`cumulativetodelta` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/cumulativetodeltaprocessor) to convert cumulative sum metrics to cumulative delta + +- [`file` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/fileexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`jaeger` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/jaegerexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`kafka` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/kafkaexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`opencensus` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/opencensusexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`prometheus` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`prometheusremotewrite` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusremotewriteexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`zipkin` exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/zipkinexporter) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`attribute` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/attributeprocessor) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`filter` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/filterprocessor) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`probabilisticsampler` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/probabilisticsamplerprocessor) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`resource` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/resourceprocessor) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`span` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/spanprocessor) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`hostmetrics` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`jaeger` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/jaegerreceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`kafka` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/kafkareceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`opencensus` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/opencensusreceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`prometheus` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/prometheusreceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`zipkin` receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/zipkinreceiver) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`bearertokenauth` extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/bearertokenauthextension) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`healthcheck` extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/healthcheckextension) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`oidcauth` extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/oidcauthextension) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`pprof` extension](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/extension/pprofextension) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) +- [`testbed`](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/testbed) from core repository ([#3474](https://github.com/open-telemetry/opentelemetry-collector/issues/3474)) + +### 💡 Enhancements 💡 + +- `tailsampling` processor: Add new policy `probabilistic` (#3876) + +## v0.33.0 + +# 🎉 OpenTelemetry Collector Contrib v0.33.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.32.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- [`cumulativetodelta` processor](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/cumulativetodeltaprocessor) to convert cumulative sum metrics to cumulative delta + +### 💡 Enhancements 💡 + +- Collector contrib has now full support for metrics proto v0.9.0. + +## v0.32.0 + +# 🎉 OpenTelemetry Collector Contrib v0.32.0 (Beta) 🎉 + +This release is marked as "bad" since the metrics pipelines will produce bad data. + +- See https://github.com/open-telemetry/opentelemetry-collector/issues/3824 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.32.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- `splunk_hec` receiver/exporter: `com.splunk.source` field is mapped to `source` field in Splunk instead of `service.name` (#4596) +- `redis` receiver: Move interval runner package to `internal/interval` (#4600) +- `datadog` exporter: Export summary count and sum as monotonic counts (#4605) + +### 💡 Enhancements 💡 + +- `logzio` exporter: + - New implementation of an in-memory queue to store traces, data compression with gzip, and queue configuration options (#4395) + - Make `Hclog2ZapLogger` struct and methods private for public go api review (#4431) +- `newrelic` exporter (#4392): + - Marked unsupported metric as permanent error + - Force the interval to be valid even if 0 +- `awsxray` exporter: Add PHP stacktrace parsing support (#4454) +- `file_storage` extension: Implementation of batch storage API (#4145) +- `datadog` exporter: + - Skip sum metrics with no aggregation temporality (#4597) + - Export delta sums as counts (#4609) +- `elasticsearch` exporter: Add dedot support (#4579) +- `signalfx` exporter: Add process metric to translation rules (#4598) +- `splunk_hec` exporter: Add profiling logs support (#4464) +- `awsemf` exporter: Replace logGroup and logStream pattern with metric labels (#4466) + +### 🧰 Bug fixes 🧰 + +- `awsxray` exporter: Fix the origin on ECS/EKS/EB on EC2 cases (#4391) +- `splunk_hec` exporter: Prevent re-sending logs that were successfully sent (#4467) +- `signalfx` exporter: Prefix temporary metric translations (#4394) + +## v0.31.0 + +# 🎉 OpenTelemetry Collector Contrib v0.31.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.31.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- `influxdb` receiver: Removed `metrics_schema` config option (#4277) + +### 💡 Enhancements 💡 + +- Update to OTLP 0.8.0: + - Remove use of `IntHistogram` (#4276) + - Update exporters/receivers for `NumberDataPoint` +- Remove use of deprecated `pdata` slice `Resize()` (#4203, #4208, #4209) +- `awsemf` exporter: Added the option to have a user who is sending metrics from EKS Fargate Container Insights to reformat them to look the same as insights from ECS so that they can be ingested by CloudWatch (#4130) +- `k8scluster` receiver: Support OpenShift cluster quota metrics (#4342) +- `newrelic` exporter (#4278): + - Requests are now retry-able via configuration option (defaults to retries enabled). Permanent errors are not retried. + - The exporter monitoring metrics now include an untagged summary metric for ease of use. + - Improved error logging to include URLs that fail to post messages to New Relic. +- `datadog` exporter: Upscale trace stats when global sampling rate is set (#4213) + +### 🧰 Bug fixes 🧰 + +- `statsd` receiver: Add option to set Counter to be monotonic (#4154) +- Fix `internal/stanza` severity mappings (#4315) +- `awsxray` exporter: Fix the wrong AWS env resource setting (#4384) +- `newrelic` exporter (#4278): + - Configuration unmarshalling did not allow timeout value to be set to 0 in the endpoint specific section. + - Request cancellation was not propagated via context into the http request. + - The queued retry logger is set to a zap.Nop logger as intended. + +## v0.30.0 + +# 🎉 OpenTelemetry Collector Contrib v0.30.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.30.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 +- `oauth2clientauth` extension: ported from core (#3848) +- `metrics-generation` processor: is now enabled and available (#4047) + +### 🛑 Breaking changes 🛑 + +- Removed `jaegerthrifthttp` exporter (#4089) + +### 💡 Enhancements 💡 + +- `tailsampling` processor: + - Add new policy `status_code` (#3754) + - Add new tail sampling processor policy: status_code (#3754) +- `awscontainerinsights` receiver: + - Integrate components and fix bugs for EKS Container Insights (#3846) + - Add Cgroup to collect ECS instance metrics for container insights receiver #3875 +- `spanmetrics` processor: Support sub-millisecond latency buckets (#4091) +- `sentry` exporter: Add exception event capture in sentry (#3854) + +## v0.29.0 + +# 🎉 OpenTelemetry Collector Contrib v0.29.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.29.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- `redis` receiver (#3808) + - removed configuration `service_name`. Use resource processor or `resource_attributes` setting if using `receivercreator` + - removed `type` label and set instrumentation library name to `otelcol/redis` as other receivers do + +### 💡 Enhancements 💡 + +- `tailsampling` processor: + - Add new policy `latency` (#3750) + - Add new policy `status_code` (#3754) +- `splunkhec` exporter: Include `trace_id` and `span_id` if set (#3850) +- `newrelic` exporter: Update instrumentation naming in accordance with otel spec (#3733) +- `sentry` exporter: Added support for insecure connection with Sentry (#3446) +- `k8s` processor: + - Add namespace k8s tagger (#3384) + - Add ignored pod names as config parameter (#3520) +- `awsemf` exporter: Add support for `TaskDefinitionFamily` placeholder on log stream name (#3755) +- `loki` exporter: Add resource attributes as Loki label (#3418) + +### 🧰 Bug fixes 🧰 + +- `datadog` exporter: + - Ensure top level spans are computed (#3786) + - Update `env` clobbering behavior (#3851) +- `awsxray` exporter: Fixed filtered attribute translation (#3757) +- `splunkhec` exporter: Include trace and span id if set in log record (#3850) + +## v0.28.0 + +# 🎉 OpenTelemetry Collector Contrib v0.28.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.28.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `humio` exporter to export data to Humio using JSON over the HTTP [Ingest API](https://docs.humio.com/reference/api/ingest/) +- `udplog` receiver to receives logs from udp using the [opentelemetry-log-collection](https://github.com/open-telemetry/opentelemetry-log-collection) library +- `tanzuobservability` exporter to send traces to [Tanzu Observability](https://tanzu.vmware.com/observability) + +### 🛑 Breaking changes 🛑 + +- `f5cloud` exporter (#3509): + - Renamed the config 'auth' field to 'f5cloud_auth'. This will prevent a config field name collision when [Support for Custom Exporter Authenticators as Extensions](https://github.com/open-telemetry/opentelemetry-collector/pull/3128) is ready to be integrated. + +### 💡 Enhancements 💡 + +- Enabled Dependabot for Github Actions (#3543) +- Change obsreport helpers for receivers to use the new pattern created in Collector (#3439,#3443,#3449,#3504,#3521,#3548) +- `datadog` exporter: + - Add logging for unknown or unsupported metric types (#3421) + - Add collector version tag to internal health metrics (#3394) + - Remove sublayer stats calc and mutex (#3531) + - Deduplicate hosts for which we send running metrics (#3539) + - Add support for summary datatype (#3660) + - Add datadog span operation name remapping config option (#3444) + - Update error formatting for error spans that are not exceptions (#3701) +- `nginx` receiver: Update the nginx metrics to more closely align with the conventions (#3420) +- `elasticsearch` exporter: Init JSON encoding support (#3101) +- `jmx` receiver: + - Allow setting system properties (#3450) + - Update tested JMX Metric Gatherer release (#3695) +- Refactor components for the Client Authentication Extensions (#3507) +- Remove redundant conversion calls (#3688) +- `storage` extension: Add a `Close` method to Client interface (#3506) +- `splunkhec` exporter: Add `metric_type` as key which maps to the type of the metric (#3696) +- `k8s` processor: Add semantic conventions to k8s-tagger for pod metadata (#3544) +- `kubeletstats` receiver: Refactor kubelet client to internal folder (#3698) +- `newrelic` exporter (#3690): + - Updates the log level from error to debug when New Relic rate limiting occurs + - Updates the sanitized api key that is reported via metrics +- `filestorage` extension: Add ability to specify name (#3703) +- `awsemf` exporter: Store the initial value for cumulative metrics (#3425) +- `awskinesis` exporter: Refactor to allow for extended types of encoding (#3655) +- `ecsobserver` extension: + - Add task definition, ec2, and service fetcher (#3503) + - Add exporter to convert task to target (#3333) + +### 🧰 Bug fixes 🧰 + +- `awsemf` exporter: Remove delta adjustment from summaries by default (#3408) +- `alibabacloudlogservice` exporter: Sanitize labels for metrics (#3454) +- `statsd` receiver: Fix StatsD drop metrics tags when using summary as observer_type for timer/histogram (#3440) +- `awsxray` exporter: Restore setting of Throttle for HTTP throttle response (#3685) +- `awsxray` receiver: Fix quick start bug (#3653) +- `metricstransform` processor: Check all data points for matching metric label values (#3435) + +## v0.27.0 + +# 🎉 OpenTelemetry Collector Contrib v0.27.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.27.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `tcplog` receiver to receive logs from tcp using the [opentelemetry-log-collection](https://github.com/open-telemetry/opentelemetry-log-collection) library +- `influxdb` receiver to accept metrics data as [InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v2.0/reference/syntax/line-protocol/) + +### 💡 Enhancements 💡 + +- `splunkhec` exporter: + - Include the response in returned 400 errors (#3338) + - Map summary metrics to Splunk HEC metrics (#3344) + - Add HEC telemetry (#3260) +- `newrelic` exporter: Include dropped attributes and events counts (#3187) +- `datadog` exporter: + - Add Fargate task ARN to container tags (#3326) + - Improve mappings for span kind dd span type (#3368) +- `signalfx` exporter: Add info log for host metadata properties update (#3343) +- `awsprometheusremotewrite` exporter: Add SDK and system information to User-Agent header (#3317) +- `metricstransform` processor: Add filtering capabilities matching metric label values for applying changes (#3201) +- `groupbytrace` processor: Added workers for queue processing (#2902) +- `resourcedetection` processor: Add docker detector (#2775) +- `tailsampling` processor: Support regex on span attribute filtering (#3335) + +### 🧰 Bug fixes 🧰 + +- `datadog` exporter: + - Update Datadog attributes to tags mapping (#3292) + - Consistent `hostname` and default metrics behavior (#3286) +- `signalfx` exporter: Handle character limits on metric names and dimensions (#3328) +- `newrelic` exporter: Fix timestamp value for cumulative metrics (#3406) + +## v0.26.0 + +# 🎉 OpenTelemetry Collector Contrib v0.26.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.26.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `influxdb` exporter to support sending tracing, metrics, and logging data to [InfluxDB](https://www.influxdata.com/products/) + +### 🛑 Breaking changes 🛑 + +- `signalfx` exporter (#3207): + - Additional metrics excluded by default by signalfx exporter + - system.disk.io_time + - system.disk.operation_time + - system.disk.weighted_io_time + - system.network.connections + - system.processes.count + - system.processes.created + +### 💡 Enhancements 💡 + +- Add default config and systemd environment file support for DEB/RPM packages (#3123) +- Log errors on receiver start/stop failures (#3208) +- `newrelic` exporter: Update API key detection logic (#3212) +- `splunkhec` exporter: + - Mark permanent errors to avoid futile retries (#3253) + - Add TLS certs verification (#3204) +- `datadog` exporter: + - Add env and tag name normalization to trace payloads (#3200) + - add `ignore_resource`s configuration option (#3245) +- `jmx` receiver: Update for latest snapshot and header support (#3283) +- `awsxray` exporter: Added support for stack trace translation for .NET language (#3280) +- `statsd` receiver: Add timing/histogram for statsD receiver as OTLP summary (#3261) + +### 🧰 Bug fixes 🧰 + +- `awsprometheusremotewrite` exporter: + - Remove `sending_queue` (#3186) + - Use the correct default for aws_auth.service (#3161) + - Identify the Amazon Prometheus region from the endpoint (#3210) + - Don't panic in case session can't be constructed (#3221) +- `datadog` exporter: Add max tag length (#3185) +- `sapm` exporter: Fix crash when passing the signalfx access token (#3294) +- `newrelic` exporter: Update error conditions (#3322) + +## v0.25.0 + +# 🎉 OpenTelemetry Collector Contrib v0.25.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.25.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `kafkametricsreceiver` new receiver component for collecting metrics about a kafka cluster - primarily lag and offset. [configuration instructions](receiver/kafkametricsreceiver/README.md) +- `file_storage` extension to read and write data to the local file system (#3087) + +### 🛑 Breaking changes 🛑 + +- `newrelic` exporter (#3091): + - Removal of common attributes (use opentelemetry collector resource processor to add attributes) + - Drop support for cumulative metrics being sent to New Relic via a collector + +### 💡 Enhancements 💡 + +- Update `opentelemetry-log-collection` to v0.17.0 for log receivers (#3017) +- `datadog` exporter: + - Add `peer.service` priority instead of `service.name` (#2817) + - Improve support of semantic conventions for K8s, Azure and ECS (#2623) +- Improve and batch logs translation for stanza (#2892) +- `statsd` receiver: Add timing/histogram as OTLP gauge (#2973) +- `honeycomb` exporter: Add Retry and Queue settings (#2714) +- `resourcedetection` processor: + - Add AKS resource detector (#3035) + - Use conventions package constants for ECS detector (#3171) +- `sumologic` exporter: Add graphite format (#2695) +- Add trace attributes to the log entry for stanza (#3018) +- `splunk_hec` exporter: Send log record name as part of the HEC log event (#3119) +- `newrelic` exporter (#3091): + - Add support for logs + - Performance improvements + - Optimizations to the New Relic payload to reduce payload size + - Metrics generated for monitoring the exporter + - Insert Key vs License keys are auto-detected in some cases + - Collector version information is properly extracted via the application start info parameters + +### 🧰 Bug fixes 🧰 + +- `splunk_hec` exporter: Fix sending log payload with missing the GZIP footer (#3032) +- `awsxray` exporter: Remove propagation of error on shutdown (#2999) +- `resourcedetection` processor: + - Correctly report DRAGONFLYBSD value (#3100) + - Fallback to `os.Hostname` when FQDN is not available (#3099) +- `httpforwarder` extension: Do not report ErrServerClosed when shutting down the service (#3173) +- `collectd` receiver: Do not report ErrServerClosed when shutting down the service (#3178) + +## v0.24.0 + +# 🎉 OpenTelemetry Collector Contrib v0.24.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.24.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `fluentbit` extension and `fluentforward` receiver moved from opentelemetry-collector + +### 💡 Enhancements 💡 + +- Check `NO_WINDOWS_SERVICE` environment variable to force interactive mode on Windows (#2819) +- `resourcedetection `processor: + - Add task revision to ECS resource detector (#2814) + - Add GKE detector (#2821) + - Add Amazon EKS detector (#2820) + - Add `VMScaleSetName` field to Azure detector (#2890) +- `awsemf` exporter: + - Add `parse_json_encoded_attr_values` config option to decode json-encoded strings in attribute values (#2827) + - Add `output_destination` config option to support AWS Lambda (#2720) +- `googlecloud` exporter: Handle `cloud.availability_zone` semantic convention (#2893) +- `newrelic` exporter: Add `instrumentation.provider` to default attributes (#2900) +- Set unprivileged user to container image (#2925) +- `splunkhec` exporter: Add `max_content_length_logs` config option to send log data in payloads less than max content length (#2524) +- `k8scluster` and `kubeletstats` receiver: Replace package constants in favor of constants from conventions in core (#2996) + +### 🧰 Bug fixes 🧰 + +- `spanmetrics` processor: + - Rename `calls` metric to `calls_total` and set `IsMonotonic` to true (#2837) + - Validate duplicate dimensions at start (#2844) +- `awsemf` exporter: Calculate delta instead of rate for cumulative metrics (#2512) +- `signalfx` exporter: + - Remove more unnecessary translation rules (#2889) + - Implement summary type (#2998) +- `awsxray` exporter: Remove translation to HTTP status from OC status (#2978) +- `awsprometheusremotewrite` exporter: Close HTTP body after RoundTrip (#2955) +- `splunkhec` exporter: Add ResourceAttributes to Splunk Event (#2843) + +## v0.23.0 + +# 🎉 OpenTelemetry Collector Contrib v0.23.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.23.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `groupbyattrs` processor to group the records by provided attributes +- `dotnetdiagnostics` receiver to read metrics from .NET processes + +### 🛑 Breaking changes 🛑 + +- `stackdriver` exporter marked as deprecated and renamed to `googlecloud` +- Change the rule expression in receiver creator for matching endpoints types from `type.port`, `type.hostport` and `type.pod` to `type == "port"`, `type == "hostport"` and `type == "pod"` (#2661) + +### 💡 Enhancements 💡 + +- `loadbalancing` exporter: Add support for logs (#2470) +- `sumologic` exporter: Add carbon formatter (#2562) +- `awsecscontainermetrics` receiver: Add new metric for stopped container (#2383) +- `awsemf` exporter: + - Send EMF logs in batches (#2572) + - Add prometheus type field for CloudWatch compatibility (#2689) +- `signalfx` exporter: + - Add resource attributes to events (#2631) + - Add translation rule to drop dimensions (#2660) + - Remove temporary host translation workaround (#2652) + - Remove unnecessary default translation rules (#2672) + - Update `exclude_metrics` option so that the default exclude rules can be overridden by setting the option to `[]` (#2737) +- `awsprometheusremotewrite` exporter: Add support for given IAM roles (#2675) +- `statsd` receiver: Change to use OpenTelemetry type instead of OpenCensus type (#2733) +- `resourcedetection` processor: Add missing entries for `cloud.infrastructure_service` (#2777) + +### 🧰 Bug fixes 🧰 + +- `dynatrace` exporter: Serialize each datapoint into separate line (#2618) +- `splunkhec` exporter: Retain all otel attributes (#2712) +- `newrelic` exporter: Fix default metric URL (#2739) +- `googlecloud` exporter: Add host.name label if hostname is present in node (#2711) + +## v0.22.0 + +# 🎉 OpenTelemetry Collector Contrib v0.22.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.22.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `filelog` receiver to tail and parse logs from files using the [opentelemetry-log-collection](https://github.com/open-telemetry/opentelemetry-log-collection) library + +### 💡 Enhancements 💡 + +- `dynatrace` exporter: Send metrics to Dynatrace in chunks of 1000 (#2468) +- `k8s` processor: Add ability to associate metadata tags using pod UID rather than just IP (#2199) +- `signalfx` exporter: + - Add statusCode to logging field on dimension client (#2459) + - Add translation rules for `cpu.utilization_per_core` (#2540) + - Updates to metadata handling (#2531) + - Calculate extra network I/O metrics (#2553) + - Calculate extra disk I/O metrics (#2557) +- `statsd` receiver: Add metric type label and `enable_metric_type` option (#2466) +- `sumologic` exporter: Add support for carbon2 format (#2562) +- `resourcedetection` processor: Add Azure detector (#2372) +- `k8scluster` receiver: Use OTel conventions for metadata (#2530) +- `newrelic` exporter: Multi-tenant support for sending trace data and performance enhancements (#2481) +- `stackdriver` exporter: Enable `retry_on_failure` and `sending_queue` options (#2613) +- Use standard way to convert from time.Time to proto Timestamp (#2548) + +### 🧰 Bug fixes 🧰 + +- `signalfx` exporter: + - Fix calculation of `network.total` metric (#2551) + - Correctly convert dimensions on metadata updates (#2552) +- `awsxray` exporter and receiver: Fix the type of content_length (#2539) +- `resourcedetection` processor: Use values in accordance to semantic conventions for AWS (#2556) +- `awsemf` exporter: Fix concurrency issue (#2571) + +## v0.21.0 + +# 🎉 OpenTelemetry Collector Contrib v0.21.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.21.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `loki` exporter to export data via HTTP to Loki + +### 🛑 Breaking changes 🛑 + +- `signalfx` exporter: Allow periods to be sent in dimension keys (#2456). Existing users who do not want to change this functionality can set `nonalphanumeric_dimension_chars` to `_-` + +### 💡 Enhancements 💡 + +- `awsemf` exporter: + - Support unit customization before sending logs to AWS CloudWatch (#2318) + - Group exported metrics by labels (#2317) +- `datadog` exporter: Add basic span events support (#2338) +- `alibabacloudlogservice` exporter: Support new metrics interface (#2280) +- `sumologic` exporter: + - Enable metrics pipeline (#2117) + - Add support for all types of log body (#2380) +- `signalfx` exporter: Add `nonalphanumeric_dimension_chars` config option (#2442) + +### 🧰 Bug fixes 🧰 + +- `resourcedetection` processor: Fix resource attribute environment variable (#2378) +- `k8scluster` receiver: Fix nil pointer bug (#2450) + +## v0.20.0 + +# 🎉 OpenTelemetry Collector Contrib v0.20.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.20.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `spanmetrics` processor to aggregate Request, Error and Duration (R.E.D) metrics from span data +- `awsxray` receiver to accept spans in the X-Ray Segment format +- `groupbyattrs` processor to group the records by provided attributes + +### 🛑 Breaking changes 🛑 + +- Rename `kinesis` exporter to `awskinesis` (#2234) +- `signalfx` exporter: Remove `send_compatible_metrics` option, use `translation_rules` instead (#2267) +- `datadog` exporter: Remove default prefix from user metrics (#2308) + +### 💡 Enhancements 💡 + +- `signalfx` exporter: Add k8s metrics to default excludes (#2167) +- `stackdriver` exporter: Reduce QPS (#2191) +- `datadog` exporter: + - Translate otel exceptions to DataDog errors (#2195) + - Use resource attributes for metadata and generated metrics (#2023) +- `sapm` exporter: Enable queuing by default (#1224) +- `dynatrace` exporter: Allow underscores anywhere in metric or dimension names (#2219) +- `awsecscontainermetrics` receiver: Handle stopped container's metadata (#2229) +- `awsemf` exporter: Enhance metrics batching in AWS EMF logs (#2271) +- `f5cloud` exporter: Add User-Agent header with version to requests (#2292) + +### 🧰 Bug fixes 🧰 + +- `signalfx` exporter: Reinstate network/filesystem translation rules (#2171) + +## v0.19.0 + +# 🎉 OpenTelemetry Collector Contrib v0.19.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.19.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `f5cloud` exporter to export metric, trace, and log data to F5 Cloud +- `jmx` receiver to report metrics from a target MBean server in conjunction with the [JMX Metric Gatherer](https://github.com/open-telemetry/opentelemetry-java-contrib/blob/main/contrib/jmx-metrics/README.md) + +### 🛑 Breaking changes 🛑 + +- `signalfx` exporter: The `exclude_metrics` option now takes slice of metric filters instead of just metric names (slice of strings) (#1951) + +### 💡 Enhancements 💡 + +- `datadog` exporter: Sanitize datadog service names (#1982) +- `awsecscontainermetrics` receiver: Add more metadata (#2011) +- `azuremonitor` exporter: Favor RPC over HTTP spans (#2006) +- `awsemf` exporter: Always use float64 as calculated rate (#2019) +- `splunkhec` receiver: Make the HEC receiver path configurable, and use `/*` by default (#2137) +- `signalfx` exporter: + - Drop non-default metrics and add `include_metrics` option to override (#2145, #2146, #2162) + - Rename `system.network.dropped_packets` metric to `system.network.dropped` (#2160) + - Do not filter cloud attributes from dimensions (#2020) +- `redis` receiver: Migrate to pdata metrics #1889 + +### 🧰 Bug fixes 🧰 + +- `datadog` exporter: Ensure that version tag is added to trace stats (#2010) +- `loadbalancing` exporter: Rolling update of collector can stop the periodical check of DNS updates (#1798) +- `awsecscontainermetrics` receiver: Change the type of `exit_code` from string to int and deal with the situation when there is no data (#2147) +- `groupbytrace` processor: Make onTraceReleased asynchronous to fix processor overload (#1808) +- Handle cases where the time field of Splunk HEC events is encoded as a String (#2159) + +## v0.18.0 + +# 🎉 OpenTelemetry Collector Contrib v0.18.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.18.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `sumologic` exporter to send logs and metrics data to Sumo Logic +- `dynatrace` exporter to send metrics to Dynatrace + +### 💡 Enhancements 💡 + +- `datadog` exporter: + - Add resource attributes to tags conversion feature (#1782) + - Add Kubernetes conventions for hostnames (#1919) + - Add container tags to datadog export for container infra metrics in service view (#1895) + - Update resource naming and span naming (#1861) + - Add environment variables support for config options (#1897) +- `awsxray` exporter: Add parsing of JavaScript stack traces (#1888) +- `elastic` exporter: Translate exception span events (#1858) +- `signalfx` exporter: Add translation rules to aggregate per core CPU metrics in default translations (#1841) +- `resourcedetection` processor: Gather tags associated with the EC2 instance and add them as resource attributes (#1899) +- `simpleprometheus` receiver: Add support for passing params to the prometheus scrape config (#1949) +- `azuremonitor` exporter: Implement Span status code specification changes - gRPC (#1960) +- `metricstransform` processor: Add grouping option ($1887) +- `alibabacloudlogservice` exporter: Use producer to send data to improve performance (#1981) + +### 🧰 Bug fixes 🧰 + +- `datadog` exporter: Handle monotonic metrics client-side (#1805) +- `awsxray` exporter: Log error when translating span (#1809) + +## v0.17.0 + +# 🎉 OpenTelemetry Collector Contrib v0.17.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.17.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 💡 Enhancements 💡 + +- `awsemf` exporter: Add collector version to EMF exporter user agent (#1778) +- `signalfx` exporter: Add configuration for trace correlation (#1795) +- `statsd` receiver: Add support for metric aggregation (#1670) +- `datadog` exporter: Improve logging of hostname detection (#1796) + +### 🧰 Bug fixes 🧰 + +- `resourcedetection` processor: Fix ecs detector to not use the default golang logger (#1745) +- `signalfx` receiver: Return 200 when receiver succeed (#1785) +- `datadog` exporter: Use a singleton for sublayer calculation (#1759) +- `awsxray` and `awsemf` exporters: Change the User-Agent content order (#1791) + +## v0.16.0 + +# 🎉 OpenTelemetry Collector Contrib v0.16.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.16.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- `honeycomb` exporter: Update to use internal data format (#1689) + +### 💡 Enhancements 💡 + +- `newrelic` exporter: Add support for span events (#1643) +- `awsemf` exporter: + - Add placeholder support in `log_group_name` and `log_stream_name` config (#1623, #1661) + - Add label matching filtering rule (#1619) +- `resourcedetection` processor: Add new resource detector for AWS Elastic Beanstalk environments (#1585) +- `loadbalancing` exporter: + - Add sort of endpoints in static resolver (#1692) + - Allow specifying port when using DNS resolver (#1650) +- Add `batchperresourceattr` helper library that splits an incoming data based on an attribute in the resource (#1694) +- `alibabacloudlogservice` exporter: + - Add logs exporter (#1609) + - Change trace type from opencensus to opentelemetry (#1713) +- `datadog` exporter: + - Improve trace exporter performance (#1706, #1707) + - Add option to only send metadata (#1723) +- `awsxray` exporter: + - Add parsing of Python stack traces (#1676) + - Add collector version to user agent (#1730) + +### 🧰 Bug fixes 🧰 + +- `loadbalancing` exporter: + - Fix retry queue for exporters (#1687) + - Fix `periodicallyResolve` for DNS resolver checks (#1678) +- `datadog` exporter: Fix status code handling (#1691) +- `awsxray` exporter: + - Fix empty traces in X-Ray console (#1709) + - Stricter requirements for adding http request url (#1729) + - Fix status code handling for errors/faults (#1740) +- `signalfx` exporter: + - Split incoming data requests by access token before enqueuing (#1727) + - Disable retry on 400 and 401, retry with backoff on 429 and 503 (#1672) +- `awsecscontainermetrics` receiver: Improve error handling to fix seg fault (#1738) + +## v0.15.0 + +# 🎉 OpenTelemetry Collector Contrib v0.15.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.15.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `zookeeper` receiver: Collects metrics from a Zookeeper instance using the `mntr` command +- `loadbalacing` exporter: Consistently exports spans belonging to the same trace to the same backend +- `windowsperfcounters` receiver: Captures the configured system, application, or custom performance counter data from the Windows registry using the PDH interface +- `awsprometheusremotewrite` exporter: Sends metrics data in Prometheus TimeSeries format to a Prometheus Remote Write Backend and signs each outgoing HTTP request following the AWS Signature Version 4 signing process + +### 💡 Enhancements 💡 + +- `awsemf` exporter: + - Add `metric_declarations` config option for metric filtering and dimensions (#1503) + - Add SummaryDataType and remove Min/Max from Histogram (#1584) +- `signalfxcorrelation` exporter: Add ability to translate host dimension (#1561) +- `newrelic` exporter: Use pdata instead of the OpenCensus for traces (#1587) +- `metricstransform` processor: + - Add `combine` action for matched metrics (#1506) + - Add `submatch_case` config option to specify case of matched label values (#1640) +- `awsecscontainermetrics` receiver: Extract cluster name from ARN (#1626) +- `elastic` exporter: Improve handling of span status if the status code is unset (#1591) + +### 🧰 Bug fixes 🧰 + +- `awsemf` exporter: Add check for unhandled metric data types (#1493) +- `groupbytrace` processor: Make buffered channel to avoid goroutines leak (#1505) +- `stackdriver` exporter: Set `options.UserAgent` so that the OpenCensus exporter does not override the UA ($1620) + +## v0.14.0 + +# 🎉 OpenTelemetry Collector Contrib v0.14.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.14.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `datadog` exporter to send metric and trace data to Datadog (#1352) +- `tailsampling` processor moved from core to contrib (#1383) + +### 🛑 Breaking changes 🛑 + +- `jmxmetricsextension` migrated to `jmxreceiver` (#1182, #1357) +- Move signalfx correlation code out of `sapm` to `signalfxcorrelation` exporter (#1376) +- Move Splunk specific utils outside of common (#1306) +- `stackdriver` exporter: + - Config options `metric_prefix` & `skip_create_metric_descriptor` are now nested under `metric`, see [README](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/stackdriverexporter/README.md). + - Trace status codes no longer reflect gRPC codes as per spec changes: open-telemetry/opentelemetry-specification#1067 +- `datadog` exporter: Remove option to change the namespace prefix (#1483) + +### 💡 Enhancements 💡 + +- `splunkhec` receiver: Add ability to ingest metrics (#1276) +- `signalfx` receiver: Improve pipeline error handling (#1329) +- `datadog` exporter: + - Improve hostname resolution (#1285) + - Add flushing/export of traces and trace-related statistics (#1266) + - Enable traces on Windows (#1340) + - Send otel.exporter running metric (#1354) + - Add tag normalization util method (#1373) + - Send host metadata (#1351) + - Support resource conventions for hostnames (#1434) + - Add version tag extract (#1449) +- Add `batchpertrace` library to split the incoming batch into several batches, one per trace (#1257) +- `statsd` receiver: + - Add timer support (#1335) + - Add sample rate support for counter, transfer gauge to double and transfer counter to int only (#1361) +- `awsemf` exporter: Restructure metric translator logic (#1353) +- `resourcedetection` processor: + - Add EC2 hostname attribute (#1324) + - Add ECS Resource detector (#1360) +- `sapm` exporter: Add queue settings (#1390) +- `metrictransform` processor: Add metric filter option (#1447) +- `awsxray` exporter: Improve ECS attribute and origin translation (#1428) +- `resourcedetection` processor: Initial system detector (#1405) + +### 🧰 Bug fixes 🧰 + +- Remove duplicate definition of cloud providers with core conventions (#1288) +- `kubeletstats` receiver: Handle nil references from the kubelet API (#1326) +- `awsxray` receiver: + - Add kind type to root span to fix the empty parentID problem (#1338) + - Fix the race condition issue (#1490) +- `awsxray` exporter: + - Setting the tlsconfig InsecureSkipVerify using NoVerifySSL (#1350) + - Drop invalid xray trace id (#1366) +- `elastic` exporter: Ensure span name is limited (#1371) +- `splunkhec` exporter: Don't send 'zero' timestamps to Splunk HEC (#1157) +- `stackdriver` exporter: Skip processing empty metrics slice (#1494) + +## v0.13.0 + +# 🎉 OpenTelemetry Collector Contrib v0.13.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.13.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 💡 Enhancements 💡 + +- `sapm` exporter: + - Enable queuing by default (#1224) + - Add SignalFx APM correlation (#1205) + - Make span source attribute and destination dimension names configurable (#1286) +- `signalfx` exporter: + - Pass context to the http client requests (#1225) + - Update `disk.summary_utilization` translation rule to accommodate new labels (#1258) +- `newrelic` exporter: Add `span.kind` attribute (#1263) +- `datadog` exporter: + - Add Datadog trace translation helpers (#1208) + - Add API key validation (#1216) +- `splunkhec` receiver: Add the ability to ingest logs (#1268) +- `awscontainermetrics` receiver: Report `CpuUtilized` metric in percentage (#1283) +- `awsemf` exporter: Only calculate metric rate for cumulative counter and avoid SingleDimensionRollup for metrics with only one dimension (#1280) + +### 🧰 Bug fixes 🧰 + +- Make `signalfx` exporter a metadata exporter (#1252) +- `awsecscontainermetrics` receiver: Check for empty network rate stats and set zero (#1260) +- `awsemf` exporter: Remove InstrumentationLibrary dimension in CloudWatch EMF Logs if it is undefined (#1256) +- `awsxray` receiver: Fix trace/span id transfer (#1264) +- `datadog` exporter: Remove trace support for Windows for now (#1274) +- `sapm` exporter: Correlation enabled check inversed (#1278) + +## v0.12.0 + +# 🎉 OpenTelemetry Collector Contrib v0.12.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.12.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- `awsemf` exporter to support exporting metrics to AWS CloudWatch (#498, #1169) +- `http_forwarder` extension that forwards HTTP requests to a specified target (#979, #1014, #1150) +- `datadog` exporter that sends metric and trace data to Datadog (#1142, #1178, #1181, #1212) +- `awsecscontainermetrics` receiver to collect metrics from Amazon ECS Task Metadata Endpoint (#1089, #1148, #1160) + +### 💡 Enhancements 💡 + +- `signalfx` exporter: + - Add host metadata synchronization (#1039, #1118) + - Add `copy_dimensions` translator option (#1126) + - Update `k8s_cluster` metric translations (#1121) + - Add option to exclude metrics (#1156) + - Add `avg` aggregation method (#1151) + - Fallback to host if cloud resource id not found (#1170) + - Add backwards compatible translation rules for the `dockerstatsreceiver` (#1201) + - Enable queuing and retries (#1223) +- `splunkhec` exporter: + - Add log support (#875) + - Enable queuing and retries (#1222) +- `k8scluster` receiver: Standardize metric names (#1119) +- `awsxray` exporter: + - Support AWS EKS attributes (#1090) + - Store resource attributes in X-Ray segments (#1174) +- `honeycomb` exporter: + - Add span kind to the event sent to Honeycomb (#474) + - Add option to adjust the sample rate using an attribute on the span (#1162) +- `jmxmetrics` extension: Add subprocess manager to manage child java processes (#1028) +- `elastic` exporter: Initial metrics support (#1173) +- `k8s` processor: Rename default attr names for label/annotation extraction (#1214) +- Add common SignalFx host id extraction (#1100) +- Allow MSI upgrades (#1165) + +### 🧰 Bug fixes 🧰 + +- `awsxray` exporter: Don't set origin to EC2 when not on AWS (#1115) + +## v0.11.0 + +# 🎉 OpenTelemetry Collector Contrib v0.11.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.11.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 +- add `dockerstats` receiver as top level component (#1081) +- add `tracegen` utility (#956) + +### 💡 Enhancements 💡 +- `stackdriver` exporter: Allow overriding client options via config (#1010) +- `k8scluster` receiver: Ensure informer caches are synced before initial data sync (#842) +- `elastic` exporter: Translate `deployment.environment` resource attribute to Elastic APM's semantically equivalent `service.environment` (#1022) +- `k8s` processor: Add logs support (#1051) +- `awsxray` exporter: Log response error with zap (#1050) +- `signalfx` exporter + - Add dimensions to renamed metrics (#1041) + - Add translation rules for `disk_ops.total` and `disk_ops.pending` metrics (#1082) + - Add event support (#1036) +- `kubeletstats` receiver: Cache detailed PVC labels to reduce API calls (#1052) +- `signalfx` receiver: Add event support (#1035) + +## v0.10.0 + +# 🎉 OpenTelemetry Collector Contrib v0.10.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.10.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 +- add initial docker stats receiver, without sourcing in top level components (#495) +- add initial jmx metrics extension structure, without sourcing in top level components (#740) +- `routing` processor for routing spans based on HTTP headers (#907) +- `splunkhec` receiver to receive Splunk HEC metrics, traces and logs (#840) +- Add skeleton for `http_forwarder` extension that forwards HTTP requests to a specified target (#979) + +### 💡 Enhancements 💡 +- `stackdriver` exporter + - Add timeout parameter (#835) + - Add option to configurably set UserAgent string (#758) +- `signalfx` exporter + - Reduce memory allocations for big batches processing (#871) + - Add AWSUniqueId and gcp_id generation (#829) + - Calculate cpu.utilization compatibility metric (#839, #974, #954) +- `metricstransform` processor: Replace `{{version}}` in label values (#876) +- `resourcedetection` processor: Logs Support (#970) +- `statsd` receiver: Add parsing for labels and gauges (#903) + +### 🧰 Bug fixes 🧰 +- `k8s` processor + - Wrap metrics before sending further down the pipeline (#837) + - Fix setting attributes on metrics passed from agent (#836) +- `awsxray` exporter: Fix "pointer to empty string" is not omitted bug (#830) +- `azuremonitor` exporter: Treat UNSPECIFIED span kind as INTERNAL (#844) +- `signalfx` exporter: Remove misleading warnings (#869) +- `newrelic` exporter: Fix panic if service name is empty (#969) +- `honeycomb` exporter: Don't emit default proc id + starttime (#972) + +## v0.9.0 + +# 🎉 OpenTelemetry Collector Contrib v0.9.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.9.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 +- Remove deprecated `lightstep` exporter (#828) + +### 🚀 New components 🚀 +- `statsd` receiver for ingesting StatsD messages (#566) + +### 💡 Enhancements 💡 +- `signalfx` exporter + - Add disk usage translations (#760) + - Add disk utilization translations (#782) + - Add translation rule to drop redundant metrics (#809) +- `kubeletstats` receiver + - Sync available volume metadata from /pods endpoint (#690) + - Add ability to collect detailed data from PVC (#743) +- `awsxray` exporter: Translate SDK name/version into xray model (#755) +- `elastic` exporter: Translate semantic conventions to Elastic destination fields (#671) +- `stackdriver` exporter: Add point count metric (#757) +- `awsxray` receiver + - Ported the TCP proxy from the X-Ray daemon (#774) + - Convert to OTEL trace format (#691) + +### 🧰 Bug fixes 🧰 +- `kubeletstats` receiver: Do not break down metrics batch (#754) +- `host` observer: Fix issue on darwin where ports listening on all interfaces are not correctly accounted for (#582) +- `newrelic` exporter: Fix panic on missing span status (#775) + +## v0.8.0 + +# 🎉 OpenTelemetry Collector Contrib v0.8.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.8.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- Receivers + - `prometheusexec` subprocess manager (##499) + +### 💡 Enhancements 💡 + +- `signalfx` exporter + - Add/Update metric translations (#579, #584, #639, #640, #652, #662) + - Add support for calculate new metric translator (#644) + - Add renaming rules for load metrics (#664) + - Update `container.name` to `k8s.container.name` in default translation rule (#683) + - Rename working-set and page-fault metrics (#679) +- `awsxray` exporter + - Translate exception event into xray exception (#577) + - Add ingestion of X-Ray segments via UDP (#502) + - Parse Java stacktrace and populate in xray cause (#687) +- `kubeletstats` receiver + - Add metric_groups option (#648) + - Set datapoint timestamp in receiver (#661) + - Change `container.name` label to `k8s.container.name` (#680) + - Add working-set and page-fault metrics (#666) + - Add basic support for volume metrics (#667) +- `stackdriver` trace exporter: Move to new interface and pdata (#486) +- `metricstranform` processor: Keep timeseries and points in order after aggregation (#663) +- `k8scluster` receiver: Change `container.spec.name` label to `k8s.container.name` (#681) +- Migrate receiver creator to internal data model (#701) +- Add ec2 support to `resourcedetection` processor (#587) +- Enable timeout, sending queue and retry for SAPM exporter (#707) + +### 🧰 Bug fixes 🧰 + +- `azuremonitor` exporter: Correct HTTP status code success mapping (#588) +- `k8scluster` receiver: Fix owner reference in metadata updates (#649) +- `awsxray` exporter: Fix handling of db system (#697) + +### 🚀 New components 🚀 + +- Skeleton for AWS ECS container metrics receiver (#463) +- `prometheus_exec` receiver (#655) + +## v0.7.0 + +# 🎉 OpenTelemetry Collector Contrib v0.7.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.7.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- `awsxray` receiver updated to support udp: `tcp_endpoint` config option renamed to `endpoint` (#497) +- TLS config changed for `sapmreceiver` (#488) and `signalfxreceiver` receivers (#488) + +### 🚀 New components 🚀 + +- Exporters + - `sentry` adds tracing exporter for [Sentry](https://sentry.io/) (#565) +- Extensions + - `endpoints` observer: adds generic endpoint watcher (#427) + - `host` observer: looks for listening network endpoints on host (#432) + +### 💡 Enhancements 💡 + +- Update `honeycomb` exporter for v0.8.0 compatibility +- Extend `metricstransform` processor to be able to add a label to an existing metric (#441) +- Update `kubeletstats` metrics according to semantic conventions (#475) +- Updated `awsxray` receiver config to use udp (#497) +- Add `/pods` endpoint support in `kubeletstats` receiver to add extra labels (#569) +- Add metric translation options to `signalfx` exporter (#477, #501, #571, #573) + +### 🧰 Bug fixes 🧰 + +- `azuremonitor` exporter: Mark spanToEnvelope errors as permanent (#500) + +## v0.6.0 + +# 🎉 OpenTelemetry Collector Contrib v0.6.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.6.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + +- Removed `jaegarlegacy` (#397) and `zipkinscribe` receivers (#410) +- `kubeletstats` receiver: Renamed `k8s.pod.namespace` pod label to `k8s.namespace.name` and `k8s.container.name` container label to `container.name` + +### 🚀 New components 🚀 + +- Processors + - `metricstransform` renames/aggregates within individual metrics (#376) and allow changing the data type between int and float (#402) + +### 💡 Enhancements 💡 + +- `awsxray` exporter: Use `peer.service` as segment name when set. (#385) +- `splunk` exporter: Add trace exports support (#359, #399) +- Build and publish Windows MSI (#408) and DEB/RPM Linux packages (#405) + +### 🧰 Bug fixes 🧰 + +- `kubeletstats` receiver: + - Fixed NPE for newly created pods (#404) + - Updated to latest change in the ReceiverFactoryOld interface (#401) + - Fixed logging and self reported metrics (#357) +- `awsxray` exporter: Only convert SQL information for SQL databases. (#379) +- `resourcedetection` processor: Correctly obtain machine-type info from gce metadata (#395) +- `k8scluster` receiver: Fix container resource metrics (#416) + +## v0.5.0 + +Released 01-07-2020 + +# 🎉 OpenTelemetry Collector Contrib v0.5.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.5.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🚀 New components 🚀 + +- Processors + - `resourcedetection` to automatically detect the resource based on the configured set of detectors (#309) + +### 💡 Enhancements 💡 + +- `kubeletstats` receiver: Support for ServiceAccount authentication (#324) +- `signalfx` exporter and receiver + - Add SignalFx metric token passthrough and config option (#325) + - Set default endpoint of `signalfx` receiver to `:9943` (#351) +- `awsxray` exporter: Support aws plugins EC2/ECS/Beanstalk (#343) +- `sapm` exporter and receiver: Add SAPM access token passthrough and config option (#349) +- `k8s` processor: Add metrics support (#358) +- `k8s` observer: Separate annotations from labels in discovered pods (#363) + +### 🧰 Bug fixes 🧰 + +- `honeycomb` exporter: Remove shared use of libhoney from goroutines (#305) + +## v0.4.0 + +Released 17-06-2020 + +# 🎉 OpenTelemetry Collector Contrib v0.4.0 (Beta) 🎉 + +The OpenTelemetry Collector Contrib contains everything in the [opentelemetry-collector release](https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.4.0) (be sure to check the release notes here as well!). Check out the [Getting Started Guide](https://opentelemetry.io/docs/collector/getting-started/) for deployment and configuration information. + +### 🛑 Breaking changes 🛑 + + - `signalfx` exporter `url` parameter changed to `ingest_url` (no impact if only using `realm` setting) + +### 🚀 New components 🚀 + +- Receivers + - `receiver_creator` to create receivers at runtime (#145), add observer support to receiver_creator (#173), add rules support (#207), add dynamic configuration values (#235) + - `kubeletstats` receiver (#237) + - `prometheus_simple` receiver (#184) + - `kubernetes-cluster` receiver (#175) + - `redis` receiver (#138) +- Exporters + - `alibabacloudlogservice` exporter (#259) + - `SplunkHEC` metrics exporter (#246) + - `elastic` APM exporter (#240) + - `newrelic` exporter (#229) +- Extensions + - `k8s` observer (#185) + +### 💡 Enhancements 💡 + +- `awsxray` exporter + - Use X-Ray convention of segment name == service name (#282) + - Tweak xray export to improve rendering of traces and improve parity (#241) + - Add handling for spans received with nil attributes (#212) +- `honeycomb` exporter + - Use SendPresampled (#291) + - Add span attributes as honeycomb event fields (#271) + - Support resource labels in Honeycomb exporter (#20) +- `k8s` processor + - Add support of Pod UID extraction to k8sprocessor (#219) + - Use `k8s.pod.ip` to record resource IP instead of just `ip` (#183) + - Support same authentication mechanism as other kubernetes components do (#307) +- `sapm` exporter: Add TLS for SAPM and SignalFx receiver (#215) +- `signalfx` exporter + - Add metric metadata syncer to SignalFx exporter (#231) + - Add TLS for SAPM and SignalFx receiver (#215) +- `stackdriver` exporter: Add support for resource mapping in config (#163) + +### 🧰 Bug fixes 🧰 + +- `awsxray` exporter: Wrap bad request errors for proper handling by retry queue (#205) +- `lightstep` exporter: Ensure Lightstep exporter doesnt crash on nil node (#250) +- `sapm` exporter: Do not break Jaeger traces before sending downstream (#193) +- `k8s` processor: Ensure Jaeger spans work in passthrough mode (262) + +## 🧩 Components 🧩 + +### Receivers + +| Traces | Metrics | +|:-------:|:-------:| +| Jaeger Legacy | Carbon | +| SAPM (SignalFx APM) | Collectd | +| Zipkin Scribe | K8s Cluster | +| | Redis | +| | SignalFx | +| | Simple Prometheus | +| | Wavefront | + +### Processors + +- K8s + +### Exporters + +| Commercial | Community | +|:------------:|:-----------:| +| Alibaba Cloud Log Service | Carbon | +| AWS X-ray | Elastic | +| Azure Monitor | Jaeger Thrift | +| Honeycomb | Kinesis | +| Lightstep | +| New Relic | +| SAPM (SignalFx APM) | +| SignalFx (Metrics) | +| Splunk HEC | +| Stackdriver (Google) | + +### Extensions + +- Observer + - K8s + +## v0.3.0 Beta + +Released 2020-03-30 + +### Breaking changes + +- Make prometheus receiver config loading strict. #697 +Prometheus receiver will now fail fast if the config contains unused keys in it. + +### Changes and fixes + +- Enable best effort serve by default of Prometheus Exporter (https://github.com/orijtech/prometheus-go-metrics-exporter/pull/6) +- Fix null pointer exception in the logging exporter #743 +- Remove unnecessary condition to have at least one processor #744 +- Updated Honeycomb exported to `honeycombio/opentelemetry-exporter-go v0.3.1` + +### Features + +Receivers / Exporters: + +* AWS X-Ray +* Carbon +* CollectD +* Honeycomb +* Jaeger +* Kinesis +* LightStep +* OpenCensus +* OpenTelemetry +* SAPM +* SignalFx +* Stackdriver +* Wavefront +* Zipkin +* Zipkin Scribe + + +Processors: + +* Attributes +* Batch +* Memory Limiter +* Queued Retry +* Resource +* Sampling +* Span +* Kubernetes + +Extensions: + +* Health Check +* Performance Profiler +* zPages + + +## v0.2.8 + +Released 2020-03-25 + +Alpha v0.2.8 of OpenTelemetry Collector Contrib. + +- Implemented OTLP receiver and exporter. +- Added ability to pass config to the service programmatically (useful for custom builds). +- Improved own metrics / observability. + + +## v0.2.7 + +Released 2020-03-17 + +### Self-Observability +- New command-line switch to control legacy and new metrics. Users are encouraged +to experiment and migrate to the new metrics. +- Improved error handling on shutdown. + + +### Processors +- Fixed passthrough mode k8sprocessor. +- Added `HASH` action to attribute processor. + +### Receivers and Exporters +- Added Honeycomb exporter. +- Added LightStep exporter. +- Added regular expression for Carbon receiver, allowing the metric name to be broken into proper label keys and values. +- Updated Stackdriver exporter to use a new batch API. + + +## v0.2.6 Alpha + +Released 2020-02-18 + +### Self-Observability +- Updated metrics prefix to `otelcol` and expose command line argument to modify the prefix value. +- Batch dropped span now emits zero when no spans are dropped. + +### Processors +- Extended Span processor to have include/exclude span logic. +- Ability to choose strict or regexp matching for include/exclude filters. + +### Receivers and Exporters +- Added Carbon receiver and exporter. +- Added Wavefront receiver. + + +## v0.0.5 Alpha + +Released 2020-01-30 + +- Regexp-based filtering of span names. +- Ability to extract attributes from span names and rename span. +- File exporter for debugging. +- Span processor is now enabled by default. + +## v0.0.1 Alpha + +Released 2020-01-11 + +First release of OpenTelemetry Collector Contrib. + + +[v0.3.0]: https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.2.8...v0.3.0 +[v0.2.8]: https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.2.7...v0.2.8 +[v0.2.7]: https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.2.6...v0.2.7 +[v0.2.6]: https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.0.5...v0.2.6 +[v0.0.5]: https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.0.1...v0.0.5 +[v0.0.1]: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/v0.0.1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..33a39b3b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,74 @@ +# Contributing + +If you would like to contribute please read OpenTelemetry Collector [contributing +guidelines](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CONTRIBUTING.md) before you begin your +work. + +## Pull-request title + +The title for your pull-request should contain the component type and name in brackets, plus a short statement for your +change. For instance: + + [processor/tailsampling] fix AND policy + +## Adding New Components + +**Before** any code is written, [open an +issue](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/new?assignees=&labels=new+component&template=new_component.md&title=New%20component) +providing the following information: + +* Who's the sponsor for your component. A sponsor is an approver who will be in charge of being the official reviewer of + the code and become a code owner for the component. For vendor-specific components, it's good to have a volunteer + sponsor. If you can't find one, we'll assign one in a round-robin fashion. For non-vendor specific components, having + a sponsor means that your use case has been validated. +* Some information about your component, such as the reasoning behind it, use-cases, telemetry data types supported, and + anything else you think is relevant for us to make a decision about accepting the component. +* The configuration options your component will accept. This will help us understand what it does and have an idea of + how the implementation might look like. + + +Any component (receiver, processor, exporter, or extension) needs to implement the interfaces defined on the [core +repository](https://github.com/open-telemetry/opentelemetry-collector). Familiarize yourself with the interface of the +component that you want to write, and use existing implementations as reference. + +*NOTICE:* The Collector is in Beta stage and as such the interfaces may undergo breaking changes. Component creators +must be available to update or review their components when such changes happen, otherwise the component will be +excluded from the default builds. + +Generally, maintenance of components is the responsibility of contributors who authored them. If the original author or +some other contributor does not maintain the component it may be excluded from the default build. The component **will** +be excluded if it causes build problems, has failing tests or otherwise causes problems to the rest of the repository +and the rest of contributors. + +- Create your component under the proper folder and use Go standard package naming recommendations. +- Use a boiler-plate Makefile that just references the one at top level, ie.: `include ../../Makefile.Common` - this + allows you to build your component with required build configurations for the contrib repo while avoiding building the + full repo during development. +- Each component has its own go.mod file. This allows custom builds of the collector to take a limited sets of + dependencies - so run `go mod` commands as appropriate for your component. +- Implement the needed interface on your component by importing the appropriate component from the core repo. Follow the + pattern of existing components regarding config and factory source files and tests. +- Implement your component as appropriate. Provide end-to-end tests (or mock backend/client as appropriate). Target is + to get 80% or more of code coverage. +- Add a README.md on the root of your component describing its configuration and usage, likely referencing some of the + yaml files used in the component tests. We also suggest that the yaml files used in tests have comments for all + available configuration settings so users can copy and modify them as needed. +- Add a `replace` directive at the root `go.mod` file so your component is included in the build of the contrib + executable. +- Add your component to `versions.yaml`. +- All components must be included in [`internal/components/`](./internal/components) and in the respective testing + harnesses. To align with the test goal of the project, components must be testable within the framework defined within + the folder. If a component can not be properly tested within the existing framework, it must increase the non testable + components number with a comment within the PR explaining as to why it can not be tested. + +## General Recommendations +Below are some recommendations that apply to typical components. These are not rigid rules and there are exceptions but +in general try to follow them. + +- Avoid introducing batching, retries or worker pools directly on receivers and exporters. Typically, these are general + cases that can be better handled via processors (that also can be reused by other receivers and exporters). +- When implementing exporters try to leverage the exporter helpers from the core repo, see [exporterhelper + package](https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter/exporterhelper). This will + ensure that the exporter provides [zPages](https://opencensus.io/zpages/) and a standard set of metrics. +- `replace` statements in `go.mod` files can be automatically inserted by running `make crosslink`. For more information + on the `crosslink` tool see the README [here](https://github.com/open-telemetry/opentelemetry-go-build-tools/tree/main/crosslink). diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..cea19f04 --- /dev/null +++ b/Makefile @@ -0,0 +1,316 @@ +include ./Makefile.Common + +RUN_CONFIG?=local/config.yaml +CMD?= +OTEL_VERSION=main + +BUILD_INFO_IMPORT_PATH=github.com/open-telemetry/opentelemetry-collector-contrib/internal/version +VERSION=$(shell git describe --always --match "v[0-9]*" HEAD) +BUILD_INFO=-ldflags "-X $(BUILD_INFO_IMPORT_PATH).Version=$(VERSION)" + +COMP_REL_PATH=internal/components/components.go +MOD_NAME=github.com/open-telemetry/opentelemetry-collector-contrib + +# ALL_MODULES includes ./* dirs (excludes . dir and example with go code) +ALL_MODULES := $(shell find . -type f -name "go.mod" -exec dirname {} \; | sort | egrep '^./' ) + +# Modules to run integration tests on. +# XXX: Find a way to automatically populate this. Too slow to run across all modules when there are just a few. +INTEGRATION_TEST_MODULES := \ + internal/containertest \ + receiver/apachereceiver \ + receiver/dockerstatsreceiver \ + receiver/jmxreceiver/ \ + receiver/kafkametricsreceiver \ + receiver/memcachedreceiver \ + receiver/mysqlreceiver \ + receiver/nginxreceiver \ + receiver/postgresqlreceiver \ + receiver/redisreceiver \ + receiver/riakreceiver \ + receiver/zookeeperreceiver \ + extension/observer/dockerobserver + +.DEFAULT_GOAL := all + +all-modules: + @echo $(ALL_MODULES) | tr ' ' '\n' | sort + +.PHONY: all +all: common gotest otelcontribcol otelcontribcol-unstable + +.PHONY: e2e-test +e2e-test: otelcontribcol otelcontribcol-unstable + $(MAKE) -C testbed run-tests + +.PHONY: unit-tests-with-cover +unit-tests-with-cover: + @echo Verifying that all packages have test files to count in coverage + @internal/buildscripts/check-test-files.sh $(subst github.com/open-telemetry/opentelemetry-collector-contrib/,./,$(ALL_PKGS)) + @$(MAKE) for-all-target TARGET="do-unit-tests-with-cover" + +.PHONY: integration-tests-with-cover +integration-tests-with-cover: + @echo $(INTEGRATION_TEST_MODULES) + @$(MAKE) for-all-target TARGET="do-integration-tests-with-cover" ALL_MODULES="$(INTEGRATION_TEST_MODULES)" + +# Long-running e2e tests +.PHONY: stability-tests +stability-tests: otelcontribcol + @echo Stability tests are disabled until we have a stable performance environment. + @echo To enable the tests replace this echo by $(MAKE) -C testbed run-stability-tests + +.PHONY: gotidy +gotidy: + $(MAKE) for-all-target TARGET="tidy" + +.PHONY: gomoddownload +gomoddownload: + $(MAKE) for-all-target TARGET="moddownload" + +.PHONY: gotest +gotest: + $(MAKE) for-all-target TARGET="test" + +.PHONY: gofmt +gofmt: + $(MAKE) for-all-target TARGET="fmt" + +.PHONY: golint +golint: + $(MAKE) for-all-target TARGET="lint" + +.PHONY: goporto +goporto: + porto -w --include-internal --skip-dirs "^cmd$$" ./ + +.PHONY: for-all +for-all: + @echo "running $${CMD} in root" + @$${CMD} + @set -e; for dir in $(ALL_MODULES); do \ + (cd "$${dir}" && \ + echo "running $${CMD} in $${dir}" && \ + $${CMD} ); \ + done + +.PHONY: add-tag +add-tag: + @[ "${TAG}" ] || ( echo ">> env var TAG is not set"; exit 1 ) + @echo "Adding tag ${TAG}" + @git tag -a ${TAG} -s -m "Version ${TAG}" + @set -e; for dir in $(ALL_MODULES); do \ + (echo Adding tag "$${dir:2}/$${TAG}" && \ + git tag -a "$${dir:2}/$${TAG}" -s -m "Version ${dir:2}/${TAG}" ); \ + done + +.PHONY: push-tag +push-tag: + @[ "${TAG}" ] || ( echo ">> env var TAG is not set"; exit 1 ) + @echo "Pushing tag ${TAG}" + @git push upstream ${TAG} + @set -e; for dir in $(ALL_MODULES); do \ + (echo Pushing tag "$${dir:2}/$${TAG}" && \ + git push upstream "$${dir:2}/$${TAG}"); \ + done + +.PHONY: delete-tag +delete-tag: + @[ "${TAG}" ] || ( echo ">> env var TAG is not set"; exit 1 ) + @echo "Deleting tag ${TAG}" + @git tag -d ${TAG} + @set -e; for dir in $(ALL_MODULES); do \ + (echo Deleting tag "$${dir:2}/$${TAG}" && \ + git tag -d "$${dir:2}/$${TAG}" ); \ + done + +DEPENDABOT_PATH=".github/dependabot.yml" +.PHONY: gendependabot +gendependabot: + @echo "Recreating ${DEPENDABOT_PATH} file" + @echo "# File generated by \"make gendependabot\"; DO NOT EDIT." > ${DEPENDABOT_PATH} + @echo "" >> ${DEPENDABOT_PATH} + @echo "version: 2" >> ${DEPENDABOT_PATH} + @echo "updates:" >> ${DEPENDABOT_PATH} + @echo "Add entry for \"/\" github-actions" + @echo " - package-ecosystem: \"github-actions\"" >> ${DEPENDABOT_PATH} + @echo " directory: \"/\"" >> ${DEPENDABOT_PATH} + @echo " schedule:" >> ${DEPENDABOT_PATH} + @echo " interval: \"weekly\"" >> ${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 "Add entry for \"/\" gomod" + @echo " - package-ecosystem: \"gomod\"" >> ${DEPENDABOT_PATH} + @echo " directory: \"/\"" >> ${DEPENDABOT_PATH} + @echo " schedule:" >> ${DEPENDABOT_PATH} + @echo " interval: \"weekly\"" >> ${DEPENDABOT_PATH} + @set -e; for dir in $(ALL_MODULES); 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}; \ + done + +GOMODULES = $(ALL_MODULES) $(PWD) +.PHONY: $(GOMODULES) +MODULEDIRS = $(GOMODULES:%=for-all-target-%) +for-all-target: $(MODULEDIRS) +$(MODULEDIRS): + $(MAKE) -C $(@:for-all-target-%=%) $(TARGET) +.PHONY: for-all-target + +TOOLS_MOD_DIR := ./internal/tools +.PHONY: install-tools +install-tools: + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/client9/misspell/cmd/misspell + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/golangci/golangci-lint/cmd/golangci-lint + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/google/addlicense + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/jstemmer/go-junit-report + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/pavius/impi/cmd/impi + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/tcnksm/ghr + cd $(TOOLS_MOD_DIR) && $(GOCMD) install go.opentelemetry.io/build-tools/checkdoc + cd $(TOOLS_MOD_DIR) && $(GOCMD) install go.opentelemetry.io/build-tools/issuegenerator + cd $(TOOLS_MOD_DIR) && $(GOCMD) install golang.org/x/tools/cmd/goimports + cd $(TOOLS_MOD_DIR) && $(GOCMD) install go.opentelemetry.io/build-tools/multimod + cd $(TOOLS_MOD_DIR) && $(GOCMD) install github.com/jcchavezs/porto/cmd/porto + cd $(TOOLS_MOD_DIR) && $(GOCMD) install go.opentelemetry.io/build-tools/crosslink + +.PHONY: run +run: + GO111MODULE=on $(GOCMD) run --race ./cmd/otelcontribcol/... --config ${RUN_CONFIG} ${RUN_ARGS} + +.PHONY: docker-component # Not intended to be used directly +docker-component: check-component + GOOS=linux GOARCH=amd64 $(MAKE) $(COMPONENT) + cp ./bin/$(COMPONENT)_linux_amd64 ./cmd/$(COMPONENT)/$(COMPONENT) + docker build -t $(COMPONENT) ./cmd/$(COMPONENT)/ + rm ./cmd/$(COMPONENT)/$(COMPONENT) + +.PHONY: check-component +check-component: +ifndef COMPONENT + $(error COMPONENT variable was not defined) +endif + +.PHONY: docker-otelcontribcol +docker-otelcontribcol: + COMPONENT=otelcontribcol $(MAKE) docker-component + +.PHONY: generate +generate: + cd cmd/mdatagen && $(GOCMD) install . + $(MAKE) for-all CMD="$(GOCMD) generate ./..." + +# Build the Collector executable. +.PHONY: otelcontribcol +otelcontribcol: + GO111MODULE=on CGO_ENABLED=0 $(GOCMD) build -trimpath -o ./bin/otelcontribcol_$(GOOS)_$(GOARCH)$(EXTENSION) \ + $(BUILD_INFO) -tags $(GO_BUILD_TAGS) ./cmd/otelcontribcol + +# Build the Collector executable, including unstable functionality. +.PHONY: otelcontribcol-unstable +otelcontribcol-unstable: + GO111MODULE=on CGO_ENABLED=0 $(GOCMD) build -trimpath -o ./bin/otelcontribcol_unstable_$(GOOS)_$(GOARCH)$(EXTENSION) \ + $(BUILD_INFO) -tags $(GO_BUILD_TAGS),enable_unstable ./cmd/otelcontribcol + +.PHONY: otelcontribcol-all-sys +otelcontribcol-all-sys: otelcontribcol-darwin_amd64 otelcontribcol-darwin_arm64 otelcontribcol-linux_amd64 otelcontribcol-linux_arm64 otelcontribcol-windows_amd64 + +.PHONY: otelcontribcol-darwin_amd64 +otelcontribcol-darwin_amd64: + GOOS=darwin GOARCH=amd64 $(MAKE) otelcontribcol + +.PHONY: otelcontribcol-darwin_arm64 +otelcontribcol-darwin_arm64: + GOOS=darwin GOARCH=arm64 $(MAKE) otelcontribcol + +.PHONY: otelcontribcol-linux_amd64 +otelcontribcol-linux_amd64: + GOOS=linux GOARCH=amd64 $(MAKE) otelcontribcol + +.PHONY: otelcontribcol-linux_arm64 +otelcontribcol-linux_arm64: + GOOS=linux GOARCH=arm64 $(MAKE) otelcontribcol + +.PHONY: otelcontribcol-windows_amd64 +otelcontribcol-windows_amd64: + GOOS=windows GOARCH=amd64 EXTENSION=.exe $(MAKE) otelcontribcol + +.PHONY: update-dep +update-dep: + $(MAKE) for-all-target TARGET="updatedep" + $(MAKE) otelcontribcol + +.PHONY: update-otel +update-otel: + $(MAKE) update-dep MODULE=go.opentelemetry.io/collector VERSION=$(OTEL_VERSION) + +.PHONY: otel-from-tree +otel-from-tree: + # This command allows you to make changes to your local checkout of otel core and build + # contrib against those changes without having to push to github and update a bunch of + # references. The workflow is: + # + # 1. Hack on changes in core (assumed to be checked out in ../opentelemetry-collector from this directory) + # 2. Run `make otel-from-tree` (only need to run it once to remap go modules) + # 3. You can now build contrib and it will use your local otel core changes. + # 4. Before committing/pushing your contrib changes, undo by running `make otel-from-lib`. + $(MAKE) for-all CMD="$(GOCMD) mod edit -replace go.opentelemetry.io/collector=$(SRC_ROOT)/../opentelemetry-collector" + +.PHONY: otel-from-lib +otel-from-lib: + # Sets opentelemetry core to be not be pulled from local source tree. (Undoes otel-from-tree.) + $(MAKE) for-all CMD="$(GOCMD) mod edit -dropreplace go.opentelemetry.io/collector" + +.PHONY: build-examples +build-examples: + docker-compose -f examples/tracing/docker-compose.yml build + docker-compose -f exporter/splunkhecexporter/example/docker-compose.yml build + +.PHONY: deb-rpm-package +%-package: ARCH ?= amd64 +%-package: + $(MAKE) otelcontribcol-linux_$(ARCH) + docker build -t otelcontribcol-fpm internal/buildscripts/packaging/fpm + docker run --rm -v $(CURDIR):/repo -e PACKAGE=$* -e VERSION=$(VERSION) -e ARCH=$(ARCH) otelcontribcol-fpm + +# Verify existence of READMEs for components specified as default components in the collector. +.PHONY: checkdoc +checkdoc: + checkdoc --project-path $(CURDIR) --component-rel-path $(COMP_REL_PATH) --module-name $(MOD_NAME) + +# Function to execute a command. Note the empty line before endef to make sure each command +# gets executed separately instead of concatenated with previous one. +# Accepts command to execute as first parameter. +define exec-command +$(1) + +endef + +# List of directories where certificates are stored for unit tests. +CERT_DIRS := receiver/sapmreceiver/testdata \ + receiver/signalfxreceiver/testdata \ + receiver/splunkhecreceiver/testdata + +# Generate certificates for unit tests relying on certificates. +.PHONY: certs +certs: + $(foreach dir, $(CERT_DIRS), $(call exec-command, @internal/buildscripts/gen-certs.sh -o $(dir))) + +.PHONY: multimod-verify +multimod-verify: install-tools + @echo "Validating versions.yaml" + multimod verify + +.PHONY: multimod-prerelease +multimod-prerelease: install-tools + multimod prerelease -v ./versions.yaml -m contrib-base + +.PHONY: crosslink +crosslink: install-tools + @echo "Executing crosslink" + crosslink --root=$(shell pwd) diff --git a/Makefile.Common b/Makefile.Common new file mode 100644 index 00000000..65888ea1 --- /dev/null +++ b/Makefile.Common @@ -0,0 +1,123 @@ +# SRC_ROOT is the top of the source tree. +SRC_ROOT := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) + +ALL_SRC := $(shell find . -name '*.go' \ + -not -path '*/third_party/*' \ + -type f | sort) + +# All source code and documents. Used in spell check. +ALL_SRC_AND_DOC := $(shell find . \( -name "*.md" -o -name "*.go" -o -name "*.yaml" \) \ + -type f | sort) + +# ALL_PKGS is used with 'go cover' +ALL_PKGS := $(shell $(GOCMD) list $(sort $(dir $(ALL_SRC))) 2>/dev/null) + +# build tags required by any component should be defined as an independent variables and later added to GO_BUILD_TAGS below +GO_BUILD_TAGS="" +GOTEST_OPT?= -race -v -timeout 300s --tags=$(GO_BUILD_TAGS) +GOTEST_INTEGRATION_OPT?= -race -timeout 120s +GOTEST_OPT_WITH_COVERAGE = $(GOTEST_OPT) -coverprofile=coverage.txt -covermode=atomic +GOTEST_OPT_WITH_INTEGRATION=$(GOTEST_INTEGRATION_OPT) -v -tags=integration,$(GO_BUILD_TAGS) -run=Integration -coverprofile=integration-coverage.txt -covermode=atomic +GOCMD?= go +GOTEST=$(GOCMD) test +GOOS=$(shell $(GOCMD) env GOOS) +GOARCH=$(shell $(GOCMD) env GOARCH) +ADDLICENCESE= addlicense +MISSPELL=misspell -error +MISSPELL_CORRECTION=misspell -w +LINT=golangci-lint +IMPI=impi +# BUILD_TYPE should be one of (dev, release). +BUILD_TYPE?=release + +all-pkgs: + @echo $(ALL_PKGS) | tr ' ' '\n' | sort + +all-srcs: + @echo $(ALL_SRC) | tr ' ' '\n' | sort + +.DEFAULT_GOAL := common + +.PHONY: common +common: checklicense checkdoc impi lint misspell + +.PHONY: test +test: + $(GOTEST) $(GOTEST_OPT) ./... + +.PHONY: do-unit-tests-with-cover +do-unit-tests-with-cover: + @echo "running $(GOCMD) unit test ./... + coverage in `pwd`" + @$(GOTEST) $(GOTEST_OPT_WITH_COVERAGE) ./... + $(GOCMD) tool cover -html=coverage.txt -o coverage.html + +.PHONY: do-integration-tests-with-cover +do-integration-tests-with-cover: + @echo "running $(GOCMD) integration test ./... + coverage in `pwd`" + @$(GOTEST) $(GOTEST_OPT_WITH_INTEGRATION) ./... + @if [ -e integration-coverage.txt ]; then \ + $(GOCMD) tool cover -html=integration-coverage.txt -o integration-coverage.html; \ + fi + +.PHONY: benchmark +benchmark: + $(GOTEST) -bench=. -run=notests --tags=$(GO_BUILD_TAGS) $(ALL_PKGS) + +.PHONY: addlicense +addlicense: + @ADDLICENCESEOUT=`$(ADDLICENCESE) -y "" -c 'The OpenTelemetry Authors' $(ALL_SRC) 2>&1`; \ + if [ "$$ADDLICENCESEOUT" ]; then \ + echo "$(ADDLICENCESE) FAILED => add License errors:\n"; \ + echo "$$ADDLICENCESEOUT\n"; \ + exit 1; \ + else \ + echo "Add License finished successfully"; \ + fi + +.PHONY: checklicense +checklicense: + @ADDLICENCESEOUT=`$(ADDLICENCESE) -check $(ALL_SRC) 2>&1`; \ + if [ "$$ADDLICENCESEOUT" ]; then \ + echo "$(ADDLICENCESE) FAILED => add License errors:\n"; \ + echo "$$ADDLICENCESEOUT\n"; \ + echo "Use 'make addlicense' to fix this."; \ + exit 1; \ + else \ + echo "Check License finished successfully"; \ + fi + +.PHONY: fmt +fmt: + gofmt -w -s ./ + goimports -w -local github.com/open-telemetry/opentelemetry-collector-contrib ./ + +.PHONY: lint +lint: checklicense impi misspell + $(LINT) run --allow-parallel-runners + +.PHONY: tidy +tidy: + rm -fr go.sum + $(GOCMD) mod tidy -compat=1.17 + +.PHONY: misspell +misspell: + @echo "running $(MISSPELL)" + @$(MISSPELL) $(ALL_SRC_AND_DOC) + +.PHONY: misspell-correction +misspell-correction: + $(MISSPELL_CORRECTION) $(ALL_SRC_AND_DOC) + +.PHONY: impi +impi: + @$(IMPI) --local github.com/open-telemetry/opentelemetry-collector-contrib --scheme stdThirdPartyLocal ./... + +.PHONY: moddownload +moddownload: + $(GOCMD) mod download + +.PHONY: updatedep +updatedep: + $(PWD)/internal/buildscripts/update-dep + @$(MAKE) tidy diff --git a/README.md b/README.md new file mode 100644 index 00000000..3e6143a6 --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +--- + +

+ + Getting Started +   •   + Getting Involved +   •   + Getting In Touch + +

+ +

+ + Go Report Card + + + Build Status + + + Codecov Status + + + GitHub release (latest by date including pre-releases) + + Beta +

+ +

+ + Vision +   •   + Design +   •   + Monitoring +   •   + Performance +   •   + Security +   •   + Roadmap + +

+ +--- + +# OpenTelemetry Collector Contrib + +This is a repository for OpenTelemetry Collector contributions that are not +part of the [core +distribution](https://github.com/open-telemetry/opentelemetry-collector) of the +Collector. Typically, these contributions are vendor specific +receivers/exporters and/or components that are only useful to a relatively +small number of users. + +> Please note that this repository and its releases are a superset of the core repository. + +## Contributing + +See [CONTRIBUTING.md](CONTRIBUTING.md). + +Triagers ([@open-telemetry/collector-contrib-triagers](https://github.com/orgs/open-telemetry/teams/collector-contrib-triagers)) +- [Alolita Sharma](https://github.com/alolita), AWS +- [Punya Biswal](https://github.com/punya), Google +- [Steve Flanders](https://github.com/flands), Splunk + +Approvers ([@open-telemetry/collector-contrib-approvers](https://github.com/orgs/open-telemetry/teams/collector-contrib-approvers)): + +- [Anthony Mirabella](https://github.com/Aneurysm9), AWS +- [Anuraag Agrawal](https://github.com/anuraaga), AWS +- [David Ashpole](https://github.com/dashpole), Google +- [Dmitrii Anoshin](https://github.com/dmitryax), Splunk +- [Pablo Baeyens](https://github.com/mx-psi), DataDog +- [Przemek Maciolek](https://github.com/pmm-sumo), Sumo Logic + +Maintainers ([@open-telemetry/collector-contrib-maintainer](https://github.com/orgs/open-telemetry/teams/collector-contrib-maintainer)): + +- [Daniel Jaglowski](https://github.com/djaglowski), observIQ +- [Juraci Paixão Kröhling](https://github.com/jpkrohling), Grafana Labs +- [Alex Boten](https://github.com/codeboten), Lightstep +- [Bogdan Drutu](https://github.com/BogdanDrutu), Splunk + +Emeritus Maintainers +- [Tigran Najaryan](https://github.com/tigrannajaryan), Splunk + +Learn more about roles in the [community repository](https://github.com/open-telemetry/community/blob/main/community-membership.md). + +## PRs and Reviews + +When creating a PR please following the process [described +here](https://github.com/open-telemetry/opentelemetry-collector/blob/main/CONTRIBUTING.md#how-to-structure-prs-to-get-expedient-reviews). + +News PRs will be automatically associated with the reviewers based on +[CODEOWNERS](.github/CODEOWNERS). PRs will be also automatically assigned to one of the +maintainers or approvers for facilitation. + +The facilitator is responsible for helping the PR author and reviewers to make progress +or if progress cannot be made for closing the PR. + +If the reviewers do not have approval rights the facilitator is also responsible +for the official approval that is required for the PR to be merged and if the facilitator +is a maintainer they are responsible for merging the PR as well. + +The facilitator is not required to perform a thorough review, but they are encouraged to +enforce Collector best practices and consistency across the codebase and component +behavior. The facilitators will typically rely on codeowner's detailed review of the code +when making the final approval decision. + +We recommend maintainers and approvers to keep an eye on the +[project board](https://github.com/orgs/open-telemetry/projects/3). All newly created +PRs are automatically added to this board. (If you don't see the PR on the board you +may need to add it manually by setting the Project field in the PR view). diff --git a/cmd/configschema/Makefile b/cmd/configschema/Makefile new file mode 100644 index 00000000..ded7a360 --- /dev/null +++ b/cmd/configschema/Makefile @@ -0,0 +1 @@ +include ../../Makefile.Common diff --git a/cmd/configschema/README.md b/cmd/configschema/README.md new file mode 100644 index 00000000..6031b2d6 --- /dev/null +++ b/cmd/configschema/README.md @@ -0,0 +1,5 @@ +# ConfigSchema API + +This package contains an API that can be used to introspect the configuration +struct of a collector component. It can be used to generate documentation or +tools to help users configure the collector. diff --git a/cmd/configschema/comments.go b/cmd/configschema/comments.go new file mode 100644 index 00000000..ce482cff --- /dev/null +++ b/cmd/configschema/comments.go @@ -0,0 +1,88 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" + +import ( + "go/ast" + "go/parser" + "go/token" + "reflect" + "strings" +) + +// commentsForStruct returns a map of fieldname -> comment for a struct +func commentsForStruct(v reflect.Value, dr DirResolver) (map[string]string, error) { + elem := v + if v.Kind() == reflect.Ptr { + elem = v.Elem() + } + dir, err := dr.PackageDir(elem.Type()) + if err != nil { + return nil, err + } + name := trimPackage(elem) + return commentsForStructName(dir, name), nil +} + +func trimPackage(v reflect.Value) string { + typeName := v.Type().String() + split := strings.Split(typeName, ".") + return split[1] +} + +func commentsForStructName(packageDir, structName string) map[string]string { + fset := token.NewFileSet() + pkgs, err := parser.ParseDir(fset, packageDir, nil, parser.ParseComments) + if err != nil { + panic(err) + } + comments := map[string]string{} + for _, pkg := range pkgs { + for _, file := range pkg.Files { + for _, decl := range file.Decls { + if gd, ok := decl.(*ast.GenDecl); ok { + for _, spec := range gd.Specs { + if ts, ok := spec.(*ast.TypeSpec); ok { + if ts.Name.Name == structName { + if structComments := gd.Doc.Text(); structComments != "" { + comments["_struct"] = structComments + } + if st, ok := ts.Type.(*ast.StructType); ok { + for _, field := range st.Fields.List { + if name := fieldName(field); name != "" { + comments[name] = field.Doc.Text() + } + } + } + } + } + } + } + } + } + } + return comments +} + +func fieldName(field *ast.Field) string { + if field.Names != nil { + return field.Names[0].Name + } else if se, ok := field.Type.(*ast.SelectorExpr); ok { + return se.Sel.Name + } else if id, ok := field.Type.(*ast.Ident); ok { + return id.Name + } + return "" +} diff --git a/cmd/configschema/comments_test.go b/cmd/configschema/comments_test.go new file mode 100644 index 00000000..0d844316 --- /dev/null +++ b/cmd/configschema/comments_test.go @@ -0,0 +1,40 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema + +import ( + "reflect" + "testing" + + "github.com/google/uuid" + "github.com/stretchr/testify/assert" +) + +func TestFieldComments(t *testing.T) { + v := reflect.ValueOf(testStruct{}) + comments, err := commentsForStruct(v, testDR("../..")) + assert.NoError(t, err) + assert.Equal(t, "embedded, package qualified comment\n", comments["Duration"]) + assert.Equal(t, "testStruct comment\n", comments["_struct"]) +} + +func TestExternalType(t *testing.T) { + u, err := uuid.NewUUID() + assert.NoError(t, err) + v := reflect.ValueOf(u) + comments, err := commentsForStruct(v, testDR(".")) + assert.NoError(t, err) + assert.Equal(t, "A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC\n4122.\n", comments["_struct"]) +} diff --git a/cmd/configschema/common_test.go b/cmd/configschema/common_test.go new file mode 100644 index 00000000..0d3102e8 --- /dev/null +++ b/cmd/configschema/common_test.go @@ -0,0 +1,44 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema + +import "time" + +type testPerson struct { + Name string +} + +// testStruct comment +type testStruct struct { + One string `mapstructure:"one"` + Two int `mapstructure:"two"` + Three uint `mapstructure:"three"` + Four bool `mapstructure:"four"` + // embedded, package qualified comment + time.Duration `mapstructure:"duration"` + Squashed testPerson `mapstructure:",squash"` + PersonPtr *testPerson `mapstructure:"person_ptr"` + PersonStruct testPerson `mapstructure:"person_struct"` + Persons []testPerson `mapstructure:"persons"` + PersonPtrs []*testPerson `mapstructure:"person_ptrs"` + Ignored string `mapstructure:"-"` +} + +func testDR(root string) DirResolver { + return DirResolver{ + SrcRoot: root, + ModuleName: DefaultModule, + } +} diff --git a/cmd/configschema/configs.go b/cmd/configschema/configs.go new file mode 100644 index 00000000..e2006509 --- /dev/null +++ b/cmd/configschema/configs.go @@ -0,0 +1,125 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" + +import ( + "fmt" + + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" +) + +const ( + receiver = "receiver" + extension = "extension" + processor = "processor" + exporter = "exporter" +) + +// CfgInfo contains a component config instance, as well as its group name and +// type. +type CfgInfo struct { + // the name of the component group, e.g. "receiver" + Group string + // the component type, e.g. "otlpreceiver.Config" + Type config.Type + // an instance of the component's configuration struct + CfgInstance interface{} +} + +// GetAllCfgInfos accepts a Factories struct, then creates and returns a CfgInfo +// for each of its components. +func GetAllCfgInfos(components component.Factories) []CfgInfo { + var out []CfgInfo + for _, f := range components.Receivers { + out = append(out, CfgInfo{ + Type: f.Type(), + Group: receiver, + CfgInstance: f.CreateDefaultConfig(), + }) + } + for _, f := range components.Extensions { + out = append(out, CfgInfo{ + Type: f.Type(), + Group: extension, + CfgInstance: f.CreateDefaultConfig(), + }) + } + for _, f := range components.Processors { + out = append(out, CfgInfo{ + Type: f.Type(), + Group: processor, + CfgInstance: f.CreateDefaultConfig(), + }) + } + for _, f := range components.Exporters { + out = append(out, CfgInfo{ + Type: f.Type(), + Group: exporter, + CfgInstance: f.CreateDefaultConfig(), + }) + } + return out +} + +// GetCfgInfo accepts a Factories struct, then creates and returns the default +// config for the component specified by the passed-in componentType and +// componentName. +func GetCfgInfo(components component.Factories, componentType, componentName string) (CfgInfo, error) { + t := config.Type(componentName) + switch componentType { + case receiver: + f := components.Receivers[t] + if f == nil { + return CfgInfo{}, fmt.Errorf("unknown %s name %q", componentType, componentName) + } + return CfgInfo{ + Type: f.Type(), + Group: componentType, + CfgInstance: f.CreateDefaultConfig(), + }, nil + case processor: + f := components.Processors[t] + if f == nil { + return CfgInfo{}, fmt.Errorf("unknown %s name %q", componentType, componentName) + } + return CfgInfo{ + Type: f.Type(), + Group: componentType, + CfgInstance: f.CreateDefaultConfig(), + }, nil + case exporter: + f := components.Exporters[t] + if f == nil { + return CfgInfo{}, fmt.Errorf("unknown %s name %q", componentType, componentName) + } + return CfgInfo{ + Type: f.Type(), + Group: componentType, + CfgInstance: f.CreateDefaultConfig(), + }, nil + case extension: + f := components.Extensions[t] + if f == nil { + return CfgInfo{}, fmt.Errorf("unknown %s name %q", componentType, componentName) + } + return CfgInfo{ + Type: f.Type(), + Group: componentType, + CfgInstance: f.CreateDefaultConfig(), + }, nil + } + return CfgInfo{}, fmt.Errorf("unknown component type %q", componentType) +} diff --git a/cmd/configschema/configs_test.go b/cmd/configschema/configs_test.go new file mode 100644 index 00000000..31eae29f --- /dev/null +++ b/cmd/configschema/configs_test.go @@ -0,0 +1,80 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema + +import ( + "testing" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/components" +) + +func TestGetAllConfigs(t *testing.T) { + cfgs := GetAllCfgInfos(testComponents()) + require.NotNil(t, cfgs) +} + +func TestCreateReceiverConfig(t *testing.T) { + cfg, err := GetCfgInfo(testComponents(), "receiver", "otlp") + require.NoError(t, err) + require.NotNil(t, cfg) +} + +func TestCreateProcesorConfig(t *testing.T) { + cfg, err := GetCfgInfo(testComponents(), "processor", "filter") + require.NoError(t, err) + require.NotNil(t, cfg) +} + +func TestGetConfig(t *testing.T) { + tests := []struct { + name string + componentType string + }{ + { + name: "otlp", + componentType: "receiver", + }, + { + name: "filter", + componentType: "processor", + }, + { + name: "otlp", + componentType: "exporter", + }, + { + name: "zpages", + componentType: "extension", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + cfg, err := GetCfgInfo(testComponents(), test.componentType, test.name) + require.NoError(t, err) + require.NotNil(t, cfg) + }) + } +} + +func testComponents() component.Factories { + cmps, err := components.Components() + if err != nil { + panic(err) + } + return cmps +} diff --git a/cmd/configschema/docsgen/README.md b/cmd/configschema/docsgen/README.md new file mode 100644 index 00000000..6a1c1f44 --- /dev/null +++ b/cmd/configschema/docsgen/README.md @@ -0,0 +1,44 @@ +# Docsgen CLI Tool + +This package contains a CLI tool that generates markdown files for collector +components. The markdown files present the configuration metadata extracted +by the configschema API in a human readable form that can be used to manually +configure the collector. + +## Usage + +There are two modes of operation, one where markdown files are created for all +components, and another where a markdown file is created for only one, specified +component. + +#### All components + +``` +docsgen all +``` + +Creates config.md files in every directory corresponding to a component +configuration type. + +#### Single component + +``` +docsgen component-type component-name +``` + +Creates a single config.md files in the directory corresponding to the +specified component. + +### Usage Example + +To create a config doc for the otlp receiver, use the command + +``` +docsgen receiver otlp +``` + +This creates a file called `config.md` in `receiver/otlpreceiver`. + +### Output Example + +[OTLP Receiver Config Metadata Doc](../../../receiver/otlpreceiver/config.md) diff --git a/cmd/configschema/docsgen/docsgen/cli.go b/cmd/configschema/docsgen/docsgen/cli.go new file mode 100644 index 00000000..180a2f1c --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/cli.go @@ -0,0 +1,141 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package docsgen // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema/docsgen/docsgen" + +import ( + "fmt" + "io" + "io/ioutil" + "os" + "path" + "reflect" + "strings" + "text/template" + + "go.opentelemetry.io/collector/component" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" +) + +const mdFileName = "config.md" + +// CLI is the entrypoint for this package's functionality. It handles command- +// line arguments for the docsgen executable and produces config documentation +// for the specified components. +func CLI(factories component.Factories, dr configschema.DirResolver) { + tableTmpl, err := tableTemplate() + if err != nil { + panic(err) + } + + handleCLI(factories, dr, tableTmpl, ioutil.WriteFile, os.Stdout, os.Args...) +} + +func handleCLI( + factories component.Factories, + dr configschema.DirResolver, + tableTmpl *template.Template, + writeFile writeFileFunc, + wr io.Writer, + args ...string, +) { + if !(len(args) == 2 || len(args) == 3) { + printLines(wr, "usage:", "docsgen all", "docsgen component-type component-name") + return + } + + componentType := args[1] + if componentType == "all" { + allComponents(dr, tableTmpl, factories, writeFile) + return + } + + singleComponent(dr, tableTmpl, factories, componentType, args[2], writeFile) +} + +func printLines(wr io.Writer, lines ...string) { + for _, line := range lines { + _, _ = fmt.Fprintln(wr, line) + } +} + +func allComponents( + dr configschema.DirResolver, + tableTmpl *template.Template, + factories component.Factories, + writeFile writeFileFunc, +) { + configs := configschema.GetAllCfgInfos(factories) + for _, cfg := range configs { + writeConfigDoc(tableTmpl, dr, cfg, writeFile) + } +} + +func singleComponent( + dr configschema.DirResolver, + tableTmpl *template.Template, + factories component.Factories, + componentType, componentName string, + writeFile writeFileFunc, +) { + cfg, err := configschema.GetCfgInfo(factories, componentType, componentName) + if err != nil { + panic(err) + } + + writeConfigDoc(tableTmpl, dr, cfg, writeFile) +} + +type writeFileFunc func(filename string, data []byte, perm os.FileMode) error + +func writeConfigDoc( + tableTmpl *template.Template, + dr configschema.DirResolver, + ci configschema.CfgInfo, + writeFile writeFileFunc, +) { + v := reflect.ValueOf(ci.CfgInstance) + f, err := configschema.ReadFields(v, dr) + if err != nil { + panic(err) + } + + f.Type = stripPrefix(f.Type) + + mdBytes := renderHeader(string(ci.Type), ci.Group, f.Doc) + tableBytes, err := renderTable(tableTmpl, f) + if err != nil { + panic(err) + } + mdBytes = append(mdBytes, tableBytes...) + + if hasTimeDuration(f) { + mdBytes = append(mdBytes, durationBlock...) + } + + dir, err := dr.PackageDir(v.Type().Elem()) + if err != nil { + panic(err) + } + err = writeFile(path.Join(dir, mdFileName), mdBytes, 0644) + if err != nil { + panic(err) + } +} + +func stripPrefix(name string) string { + idx := strings.Index(name, ".") + return name[idx+1:] +} diff --git a/cmd/configschema/docsgen/docsgen/cli_test.go b/cmd/configschema/docsgen/docsgen/cli_test.go new file mode 100644 index 00000000..66ef5a5a --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/cli_test.go @@ -0,0 +1,161 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package docsgen + +import ( + "os" + "path/filepath" + "strings" + "testing" + "text/template" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/exporter/loggingexporter" + "go.opentelemetry.io/collector/exporter/otlpexporter" + "go.opentelemetry.io/collector/exporter/otlphttpexporter" + "go.opentelemetry.io/collector/extension/ballastextension" + "go.opentelemetry.io/collector/extension/zpagesextension" + "go.opentelemetry.io/collector/processor/batchprocessor" + "go.opentelemetry.io/collector/processor/memorylimiterprocessor" + "go.opentelemetry.io/collector/receiver/otlpreceiver" + "go.uber.org/multierr" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" +) + +func TestWriteConfigDoc(t *testing.T) { + cfg := otlpreceiver.NewFactory().CreateDefaultConfig() + root := filepath.Join("..", "..", "..", "..") + dr := configschema.NewDirResolver(root, configschema.DefaultModule) + outputFilename := "" + tmpl := testTemplate(t) + writeConfigDoc(tmpl, dr, configschema.CfgInfo{ + Type: "otlp", + Group: "receiver", + CfgInstance: cfg, + }, func(dir string, bytes []byte, perm os.FileMode) error { + outputFilename = dir + return nil + }) + expectedPath := "receiver/otlpreceiver/config.md" + assert.True(t, strings.HasSuffix(outputFilename, expectedPath)) +} + +func testTemplate(t *testing.T) *template.Template { + tmpl, err := template.ParseFiles("testdata/test.tmpl") + require.NoError(t, err) + return tmpl +} + +func TestHandleCLI_NoArgs(t *testing.T) { + wr := &fakeIOWriter{} + handleCLI( + defaultComponents(t), + configschema.NewDefaultDirResolver(), + testTemplate(t), + func(filename string, data []byte, perm os.FileMode) error { return nil }, + wr, + ) + assert.Equal(t, 3, len(wr.lines)) +} + +func TestHandleCLI_Single(t *testing.T) { + args := []string{"", "receiver", "otlp"} + cs := defaultComponents(t) + wr := &fakeFilesystemWriter{} + + testHandleCLI(t, cs, wr, args) + + assert.Equal(t, 1, len(wr.configFiles)) + assert.Equal(t, 1, len(wr.fileContents)) + assert.True(t, strings.Contains(wr.fileContents[0], `"otlp" Receiver Reference`)) +} + +func TestHandleCLI_All(t *testing.T) { + args := []string{"", "all"} + cs := defaultComponents(t) + wr := &fakeFilesystemWriter{} + + testHandleCLI(t, cs, wr, args) + + expected := len(cs.Receivers) + len(cs.Processors) + len(cs.Exporters) + len(cs.Extensions) + assert.Equal(t, expected, len(wr.configFiles)) + assert.Equal(t, expected, len(wr.fileContents)) +} + +func testHandleCLI(t *testing.T, cs component.Factories, wr *fakeFilesystemWriter, args []string) { + stdoutWriter := &fakeIOWriter{} + tmpl := testTemplate(t) + dr := configschema.NewDirResolver(filepath.Join("..", "..", "..", ".."), configschema.DefaultModule) + handleCLI(cs, dr, tmpl, wr.writeFile, stdoutWriter, args...) +} + +func defaultComponents(t *testing.T) component.Factories { + var errs error + + extensions, err := component.MakeExtensionFactoryMap( + zpagesextension.NewFactory(), + ballastextension.NewFactory(), + ) + errs = multierr.Append(errs, err) + + receivers, err := component.MakeReceiverFactoryMap( + otlpreceiver.NewFactory(), + ) + errs = multierr.Append(errs, err) + + exporters, err := component.MakeExporterFactoryMap( + loggingexporter.NewFactory(), + otlpexporter.NewFactory(), + otlphttpexporter.NewFactory(), + ) + errs = multierr.Append(errs, err) + + processors, err := component.MakeProcessorFactoryMap( + batchprocessor.NewFactory(), + memorylimiterprocessor.NewFactory(), + ) + errs = multierr.Append(errs, err) + + cmps := component.Factories{ + Extensions: extensions, + Receivers: receivers, + Processors: processors, + Exporters: exporters, + } + require.NoError(t, errs) + return cmps +} + +type fakeFilesystemWriter struct { + configFiles, fileContents []string +} + +func (wr *fakeFilesystemWriter) writeFile(filename string, data []byte, perm os.FileMode) error { + wr.configFiles = append(wr.configFiles, filename) + wr.fileContents = append(wr.fileContents, string(data)) + return nil +} + +type fakeIOWriter struct { + lines []string +} + +func (wr *fakeIOWriter) Write(p []byte) (n int, err error) { + wr.lines = append(wr.lines, string(p)) + return 0, nil +} diff --git a/cmd/configschema/docsgen/docsgen/render.go b/cmd/configschema/docsgen/docsgen/render.go new file mode 100644 index 00000000..2b80685a --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/render.go @@ -0,0 +1,78 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package docsgen // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema/docsgen/docsgen" + +import ( + "bytes" + "fmt" + "text/template" + + "golang.org/x/text/cases" + "golang.org/x/text/language" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" +) + +func renderHeader(typ, group, doc string) []byte { + return []byte(fmt.Sprintf( + "# %q %s Reference\n\n%s\n\n", + typ, + cases.Title(language.English).String(group), + doc, + )) +} + +func renderTable(tmpl *template.Template, field *configschema.Field) ([]byte, error) { + buf := &bytes.Buffer{} + err := executeTableTemplate(tmpl, field, buf) + if err != nil { + return nil, err + } + return buf.Bytes(), nil +} + +func executeTableTemplate(tmpl *template.Template, field *configschema.Field, buf *bytes.Buffer) error { + err := tmpl.Execute(buf, field) + if err != nil { + return err + } + for _, subField := range field.Fields { + if subField.Fields == nil { + continue + } + err = executeTableTemplate(tmpl, subField, buf) + if err != nil { + return err + } + } + return nil +} + +const durationBlock = "### time-Duration \n" + + "An optionally signed sequence of decimal numbers, " + + "each with a unit suffix, such as `300ms`, `-1.5h`, " + + "or `2h45m`. Valid time units are `ns`, `us`, `ms`, `s`, `m`, `h`." + +func hasTimeDuration(f *configschema.Field) bool { + if f.Type == "time.Duration" { + return true + } + for _, sub := range f.Fields { + if hasTimeDuration(sub) { + return true + } + } + return false +} diff --git a/cmd/configschema/docsgen/docsgen/template.go b/cmd/configschema/docsgen/docsgen/template.go new file mode 100644 index 00000000..030ad57e --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/template.go @@ -0,0 +1,70 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package docsgen // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema/docsgen/docsgen" + +import ( + "strings" + "text/template" +) + +func tableTemplate() (*template.Template, error) { + return template.New("table").Funcs( + template.FuncMap{ + "join": join, + "cleanType": cleanType, + "isCompoundField": isCompoundField, + "isDuration": isDuration, + }, + ).Parse(tableTemplateStr) +} + +func isCompoundField(kind string) bool { + return kind == "struct" || kind == "ptr" +} + +func join(s string) string { + return strings.ReplaceAll(s, "\n", " ") +} + +func cleanType(s string) string { + return strings.ReplaceAll(strings.ReplaceAll(s, "*", ""), ".", "-") +} + +func isDuration(s string) bool { + return s == "time.Duration" +} + +const tableTemplateStr = `### {{ cleanType .Type }} + +| Name | Type | Default | Docs | +| ---- | ---- | ------- | ---- | +{{ range .Fields -}} +| {{ .Name }} | +{{- if .Type -}} + {{- if isCompoundField .Kind -}} + [{{ cleanType .Type }}](#{{ cleanType .Type }}) + {{- else -}} + {{- if isDuration .Type -}} + [{{ cleanType .Type }}](#{{ cleanType .Type }}) + {{- else -}} + {{ .Type }} + {{- end -}} + {{- end -}} +{{- else -}} + {{ .Kind }} +{{- end -}} +| {{ .Default }} | {{ join .Doc }} | +{{ end }} +` diff --git a/cmd/configschema/docsgen/docsgen/template_test.go b/cmd/configschema/docsgen/docsgen/template_test.go new file mode 100644 index 00000000..6a9bdb40 --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/template_test.go @@ -0,0 +1,44 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package docsgen + +import ( + "encoding/json" + "io/ioutil" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" +) + +func TestTableTemplate(t *testing.T) { + field := testDataField(t) + tmpl, err := tableTemplate() + require.NoError(t, err) + bytes, err := renderTable(tmpl, field) + require.NoError(t, err) + require.NotNil(t, bytes) +} + +func testDataField(t *testing.T) *configschema.Field { + jsonBytes, err := ioutil.ReadFile(filepath.Join("testdata", "otlp-receiver.json")) + require.NoError(t, err) + field := configschema.Field{} + err = json.Unmarshal(jsonBytes, &field) + require.NoError(t, err) + return &field +} diff --git a/cmd/configschema/docsgen/docsgen/testdata/otlp-receiver.json b/cmd/configschema/docsgen/docsgen/testdata/otlp-receiver.json new file mode 100644 index 00000000..42e67df1 --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/testdata/otlp-receiver.json @@ -0,0 +1,339 @@ +{ + "Name": "", + "Type": "*otlpreceiver.Config", + "Kind": "", + "Default": null, + "Doc": "", + "Fields": [ + { + "Name": "protocols", + "Type": "otlpreceiver.Protocols", + "Kind": "struct", + "Default": null, + "Doc": "Protocols is the configuration for the supported protocols, currently gRPC and HTTP (Proto and JSON).\n", + "Fields": [ + { + "Name": "grpc", + "Type": "*configgrpc.GRPCServerSettings", + "Kind": "ptr", + "Default": null, + "Doc": "", + "Fields": [ + { + "Name": "endpoint", + "Type": "", + "Kind": "string", + "Default": "0.0.0.0:4317", + "Doc": "Endpoint configures the address for this network connection.\nFor TCP and UDP networks, the address has the form \"host:port\". The host must be a literal IP address,\nor a host name that can be resolved to IP addresses. The port must be a literal port number or a service name.\nIf the host is a literal IPv6 address it must be enclosed in square brackets, as in \"[2001:db8::1]:80\" or\n\"[fe80::1%zone]:80\". The zone specifies the scope of the literal IPv6 address as defined in RFC 4007.\n", + "Fields": null + }, + { + "Name": "transport", + "Type": "", + "Kind": "string", + "Default": "tcp", + "Doc": "Transport to use. Known protocols are \"tcp\", \"tcp4\" (IPv4-only), \"tcp6\" (IPv6-only), \"udp\", \"udp4\" (IPv4-only),\n\"udp6\" (IPv6-only), \"ip\", \"ip4\" (IPv4-only), \"ip6\" (IPv6-only), \"unix\", \"unixgram\" and \"unixpacket\".\n", + "Fields": null + }, + { + "Name": "tls_settings", + "Type": "*configtls.TLSServerSetting", + "Kind": "ptr", + "Default": null, + "Doc": "Configures the protocol to use TLS.\nThe default value is nil, which will cause the protocol to not use TLS.\n", + "Fields": [ + { + "Name": "ca_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the CA cert. For a client this verifies the server certificate.\nFor a server this verifies client certificates. If empty uses system root CA.\n(optional)\n", + "Fields": null + }, + { + "Name": "cert_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS cert to use for TLS required connections. (optional)\n", + "Fields": null + }, + { + "Name": "key_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS key to use for TLS required connections. (optional)\n", + "Fields": null + }, + { + "Name": "client_ca_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS cert to use by the server to verify a client certificate. (optional)\nThis sets the ClientCAs and ClientAuth to RequireAndVerifyClientCert in the TLSConfig. Please refer to\nhttps://godoc.org/crypto/tls#Config for more information. (optional)\n", + "Fields": null + } + ] + }, + { + "Name": "max_recv_msg_size_mib", + "Type": "", + "Kind": "uint64", + "Default": null, + "Doc": "MaxRecvMsgSizeMiB sets the maximum size (in MiB) of messages accepted by the server.\n", + "Fields": null + }, + { + "Name": "max_concurrent_streams", + "Type": "", + "Kind": "uint32", + "Default": null, + "Doc": "MaxConcurrentStreams sets the limit on the number of concurrent streams to each ServerTransport.\nIt has effect only for streaming RPCs.\n", + "Fields": null + }, + { + "Name": "read_buffer_size", + "Type": "", + "Kind": "int", + "Default": 524288, + "Doc": "ReadBufferSize for gRPC server. See grpc.ReadBufferSize\n(https://godoc.org/google.golang.org/grpc#ReadBufferSize).\n", + "Fields": null + }, + { + "Name": "write_buffer_size", + "Type": "", + "Kind": "int", + "Default": null, + "Doc": "WriteBufferSize for gRPC server. See grpc.WriteBufferSize\n(https://godoc.org/google.golang.org/grpc#WriteBufferSize).\n", + "Fields": null + }, + { + "Name": "keepalive", + "Type": "*configgrpc.KeepaliveServerConfig", + "Kind": "ptr", + "Default": null, + "Doc": "Keepalive anchor for all the settings related to keepalive.\n", + "Fields": [ + { + "Name": "server_parameters", + "Type": "*configgrpc.KeepaliveServerParameters", + "Kind": "ptr", + "Default": null, + "Doc": "", + "Fields": [ + { + "Name": "max_connection_idle", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + }, + { + "Name": "max_connection_age", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + }, + { + "Name": "max_connection_age_grace", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + }, + { + "Name": "time", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + }, + { + "Name": "timeout", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + } + ] + }, + { + "Name": "enforcement_policy", + "Type": "*configgrpc.KeepaliveEnforcementPolicy", + "Kind": "ptr", + "Default": null, + "Doc": "", + "Fields": [ + { + "Name": "min_time", + "Type": "time.Duration", + "Kind": "int64", + "Default": null, + "Doc": "", + "Fields": null + }, + { + "Name": "permit_without_stream", + "Type": "", + "Kind": "bool", + "Default": null, + "Doc": "", + "Fields": null + } + ] + } + ] + }, + { + "Name": "auth", + "Type": "*configauth.Authentication", + "Kind": "ptr", + "Default": null, + "Doc": "Auth for this receiver\n", + "Fields": [ + { + "Name": "attribute", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "The attribute (header name) to look for auth data. Optional, default value: \"authentication\".\n", + "Fields": null + }, + { + "Name": "oidc", + "Type": "*configauth.OIDC", + "Kind": "ptr", + "Default": null, + "Doc": "OIDC configures this receiver to use the given OIDC provider as the backend for the authentication mechanism.\nRequired.\n", + "Fields": [ + { + "Name": "issuer_url", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "IssuerURL is the base URL for the OIDC provider.\nRequired.\n", + "Fields": null + }, + { + "Name": "audience", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Audience of the token, used during the verification.\nFor example: \"https://accounts.google.com\" or \"https://login.salesforce.com\".\nRequired.\n", + "Fields": null + }, + { + "Name": "issuer_ca_path", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "The local path for the issuer CA's TLS server cert.\nOptional.\n", + "Fields": null + }, + { + "Name": "username_claim", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "The claim to use as the username, in case the token's 'sub' isn't the suitable source.\nOptional.\n", + "Fields": null + }, + { + "Name": "groups_claim", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "The claim that holds the subject's group membership information.\nOptional.\n", + "Fields": null + } + ] + } + ] + } + ] + }, + { + "Name": "http", + "Type": "*confighttp.HTTPServerSettings", + "Kind": "ptr", + "Default": null, + "Doc": "", + "Fields": [ + { + "Name": "endpoint", + "Type": "", + "Kind": "string", + "Default": "0.0.0.0:4318", + "Doc": "Endpoint configures the listening address for the server.\n", + "Fields": null + }, + { + "Name": "tls_settings", + "Type": "*configtls.TLSServerSetting", + "Kind": "ptr", + "Default": null, + "Doc": "TLSSetting struct exposes TLS client configuration.\n", + "Fields": [ + { + "Name": "ca_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the CA cert. For a client this verifies the server certificate.\nFor a server this verifies client certificates. If empty uses system root CA.\n(optional)\n", + "Fields": null + }, + { + "Name": "cert_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS cert to use for TLS required connections. (optional)\n", + "Fields": null + }, + { + "Name": "key_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS key to use for TLS required connections. (optional)\n", + "Fields": null + }, + { + "Name": "client_ca_file", + "Type": "", + "Kind": "string", + "Default": null, + "Doc": "Path to the TLS cert to use by the server to verify a client certificate. (optional)\nThis sets the ClientCAs and ClientAuth to RequireAndVerifyClientCert in the TLSConfig. Please refer to\nhttps://godoc.org/crypto/tls#Config for more information. (optional)\n", + "Fields": null + } + ] + }, + { + "Name": "cors_allowed_origins", + "Type": "[]string", + "Kind": "slice", + "Default": null, + "Doc": "CorsOrigins are the allowed CORS origins for HTTP/JSON requests to grpc-gateway adapter\nfor the OTLP receiver. See github.com/rs/cors\nAn empty list means that CORS is not enabled at all. A wildcard (*) can be\nused to match any origin or one or more characters of an origin.\n", + "Fields": null + }, + { + "Name": "cors_allowed_headers", + "Type": "[]string", + "Kind": "slice", + "Default": null, + "Doc": "CorsHeaders are the allowed CORS headers for HTTP/JSON requests to grpc-gateway adapter\nfor the OTLP receiver. See github.com/rs/cors\nCORS needs to be enabled first by providing a non-empty list in CorsOrigins\nA wildcard (*) can be used to match any header.\n", + "Fields": null + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/cmd/configschema/docsgen/docsgen/testdata/test.tmpl b/cmd/configschema/docsgen/docsgen/testdata/test.tmpl new file mode 100644 index 00000000..a82ac111 --- /dev/null +++ b/cmd/configschema/docsgen/docsgen/testdata/test.tmpl @@ -0,0 +1 @@ +{{ .Type }} diff --git a/cmd/configschema/docsgen/main.go b/cmd/configschema/docsgen/main.go new file mode 100644 index 00000000..3d6f5c1a --- /dev/null +++ b/cmd/configschema/docsgen/main.go @@ -0,0 +1,71 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/exporter/loggingexporter" + "go.opentelemetry.io/collector/exporter/otlpexporter" + "go.opentelemetry.io/collector/exporter/otlphttpexporter" + "go.opentelemetry.io/collector/extension/ballastextension" + "go.opentelemetry.io/collector/extension/zpagesextension" + "go.opentelemetry.io/collector/processor/batchprocessor" + "go.opentelemetry.io/collector/processor/memorylimiterprocessor" + "go.opentelemetry.io/collector/receiver/otlpreceiver" + "go.uber.org/multierr" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema/docsgen/docsgen" +) + +func main() { + var errs error + + extensions, err := component.MakeExtensionFactoryMap( + zpagesextension.NewFactory(), + ballastextension.NewFactory(), + ) + errs = multierr.Append(errs, err) + + receivers, err := component.MakeReceiverFactoryMap( + otlpreceiver.NewFactory(), + ) + errs = multierr.Append(errs, err) + + exporters, err := component.MakeExporterFactoryMap( + loggingexporter.NewFactory(), + otlpexporter.NewFactory(), + otlphttpexporter.NewFactory(), + ) + errs = multierr.Append(errs, err) + + processors, err := component.MakeProcessorFactoryMap( + batchprocessor.NewFactory(), + memorylimiterprocessor.NewFactory(), + ) + errs = multierr.Append(errs, err) + + cmps := component.Factories{ + Extensions: extensions, + Receivers: receivers, + Processors: processors, + Exporters: exporters, + } + if errs != nil { + panic(errs) + } + dr := configschema.NewDefaultDirResolver() + docsgen.CLI(cmps, dr) +} diff --git a/cmd/configschema/fields.go b/cmd/configschema/fields.go new file mode 100644 index 00000000..0c6be48c --- /dev/null +++ b/cmd/configschema/fields.go @@ -0,0 +1,172 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" + +import ( + "fmt" + "reflect" + "strings" + "time" + + "github.com/fatih/structtag" +) + +// Field holds attributes and subfields of a config struct. +type Field struct { + Name string `yaml:",omitempty"` + Type string `yaml:",omitempty"` + Kind string `yaml:",omitempty"` + Default interface{} `yaml:",omitempty"` + Doc string `yaml:",omitempty"` + Fields []*Field `yaml:",omitempty"` +} + +// ReadFields accepts both a config struct's Value, as well as a DirResolver, +// and returns a Field pointer for the top level struct as well as all of its +// recursive subfields. +func ReadFields(v reflect.Value, dr DirResolver) (*Field, error) { + cfgType := v.Type() + field := &Field{ + Type: cfgType.String(), + } + err := refl(field, v, dr) + return field, err +} + +func refl(f *Field, v reflect.Value, dr DirResolver) error { + if v.Kind() == reflect.Ptr { + err := refl(f, v.Elem(), dr) + if err != nil { + return err + } + } + if v.Kind() != reflect.Struct { + return nil + } + comments, err := commentsForStruct(v, dr) + if err != nil { + return err + } + + // we also check if f.Doc hasn't already been written, thus preventing a + // squashed type with struct comments from overwriting the containing struct's + // comments + if sc, ok := comments["_struct"]; ok && f.Doc == "" { + f.Doc = sc + } + + for i := 0; i < v.NumField(); i++ { + structField := v.Type().Field(i) + tagName, options, err := mapstructure(structField.Tag) + if err != nil { + fmt.Printf("error parsing mapstructure tag for field %v: %q", structField, err.Error()) + // not fatal, can keep going + } + if tagName == "-" { + continue + } + fv := v.Field(i) + next := f + if !containsSquash(options) { + name := tagName + if name == "" { + name = strings.ToLower(structField.Name) + } + kindStr := fv.Kind().String() + typeStr := fv.Type().String() + if typeStr == kindStr { + typeStr = "" // omit if redundant + } + next = &Field{ + Name: name, + Type: typeStr, + Kind: kindStr, + Doc: comments[structField.Name], + } + f.Fields = append(f.Fields, next) + } + err = handleKind(fv, next, dr) + if err != nil { + return err + } + } + return nil +} + +func handleKind(v reflect.Value, f *Field, dr DirResolver) (err error) { + switch v.Kind() { + case reflect.Struct: + err = refl(f, v, dr) + case reflect.Ptr: + if v.IsNil() { + err = refl(f, reflect.New(v.Type().Elem()), dr) + } else { + err = refl(f, v.Elem(), dr) + } + case reflect.Slice: + e := v.Type().Elem() + if e.Kind() == reflect.Struct { + err = refl(f, reflect.New(e), dr) + } else if e.Kind() == reflect.Ptr { + err = refl(f, reflect.New(e.Elem()), dr) + } + case reflect.String: + if v.String() != "" { + f.Default = v.String() + } + case reflect.Bool: + if v.Bool() { + f.Default = v.Bool() + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if v.Int() != 0 { + if v.Type() == reflect.TypeOf(time.Duration(0)) { + f.Default = time.Duration(v.Int()).String() + } else { + f.Default = v.Int() + } + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + if v.Uint() != 0 { + f.Default = v.Uint() + } + } + return +} + +func mapstructure(st reflect.StructTag) (string, []string, error) { + tag := string(st) + if tag == "" { + return "", nil, nil + } + tags, err := structtag.Parse(tag) + if err != nil { + return "", nil, err + } + ms, err := tags.Get("mapstructure") + if err != nil { + return "", nil, err + } + return ms.Name, ms.Options, nil +} + +func containsSquash(options []string) bool { + for _, option := range options { + if option == "squash" { + return true + } + } + return false +} diff --git a/cmd/configschema/fields_test.go b/cmd/configschema/fields_test.go new file mode 100644 index 00000000..4956e959 --- /dev/null +++ b/cmd/configschema/fields_test.go @@ -0,0 +1,152 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema + +import ( + "reflect" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestReadFieldsWithDefaults(t *testing.T) { + defaults := map[string]interface{}{ + "one": "1", + "two": int64(2), + "three": uint64(3), + "four": true, + "duration": "42ns", + "name": "squashed", + "person_ptr": "foo", + "person_struct": "bar", + } + s := testStruct{ + One: "1", + Two: 2, + Three: 3, + Four: true, + Duration: 42, + Squashed: testPerson{"squashed"}, + PersonPtr: &testPerson{ + Name: "foo", + }, + PersonStruct: testPerson{ + Name: "bar", + }, + } + testReadFields(t, s, defaults) +} + +func TestReadFieldsWithoutDefaults(t *testing.T) { + testReadFields(t, testStruct{}, map[string]interface{}{}) +} + +func getField(fields []*Field, name string) *Field { + for _, f := range fields { + if f.Name == name { + return f + } + } + return nil +} + +func testReadFields(t *testing.T, s testStruct, defaults map[string]interface{}) { + root, _ := ReadFields( + reflect.ValueOf(s), + testDR("../.."), + ) + + assert.Equal(t, "testStruct comment\n", root.Doc) + + assert.Equal(t, "configschema.testStruct", root.Type) + + assert.Equal(t, 10, len(root.Fields)) + + assert.Equal(t, &Field{ + Name: "one", + Kind: "string", + Default: defaults["one"], + }, getField(root.Fields, "one")) + + assert.Equal(t, &Field{ + Name: "two", + Kind: "int", + Default: defaults["two"], + }, getField(root.Fields, "two")) + + assert.Equal(t, &Field{ + Name: "three", + Kind: "uint", + Default: defaults["three"], + }, getField(root.Fields, "three")) + + assert.Equal(t, &Field{ + Name: "four", + Kind: "bool", + Default: defaults["four"], + }, getField(root.Fields, "four")) + + assert.Equal(t, &Field{ + Name: "duration", + Type: "time.Duration", + Kind: "int64", + Default: defaults["duration"], + Doc: "embedded, package qualified comment\n", + }, getField(root.Fields, "duration")) + + assert.Equal(t, &Field{ + Name: "name", + Kind: "string", + Default: defaults["name"], + }, getField(root.Fields, "name")) + + personPtr := getField(root.Fields, "person_ptr") + assert.Equal(t, "*configschema.testPerson", personPtr.Type) + assert.Equal(t, "ptr", personPtr.Kind) + assert.Equal(t, 1, len(personPtr.Fields)) + assert.Equal(t, &Field{ + Name: "name", + Kind: "string", + Default: defaults["person_ptr"], + }, getField(personPtr.Fields, "name")) + + personStruct := getField(root.Fields, "person_struct") + assert.Equal(t, "configschema.testPerson", personStruct.Type) + assert.Equal(t, "struct", personStruct.Kind) + assert.Equal(t, 1, len(personStruct.Fields)) + assert.Equal(t, &Field{ + Name: "name", + Kind: "string", + Default: defaults["person_struct"], + }, getField(personStruct.Fields, "name")) + + persons := getField(root.Fields, "persons") + assert.Equal(t, "[]configschema.testPerson", persons.Type) + assert.Equal(t, "slice", persons.Kind) + assert.Equal(t, 1, len(persons.Fields)) + assert.Equal(t, &Field{ + Name: "name", + Kind: "string", + }, getField(persons.Fields, "name")) + + personPtrs := getField(root.Fields, "person_ptrs") + assert.Equal(t, "[]*configschema.testPerson", personPtrs.Type) + assert.Equal(t, "slice", personPtrs.Kind) + assert.Equal(t, 1, len(personPtrs.Fields)) + assert.Equal(t, &Field{ + Name: "name", + Kind: "string", + }, getField(personPtrs.Fields, "name")) +} diff --git a/cmd/configschema/go.mod b/cmd/configschema/go.mod new file mode 100644 index 00000000..9aa894a1 --- /dev/null +++ b/cmd/configschema/go.mod @@ -0,0 +1,805 @@ +module github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema + +go 1.17 + +require ( + github.com/fatih/structtag v1.2.0 + github.com/google/uuid v1.3.0 + github.com/open-telemetry/opentelemetry-collector-contrib v0.49.0 + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry v0.49.0 + github.com/stretchr/testify v1.7.1 + go.opentelemetry.io/collector v0.49.0 + go.opentelemetry.io/collector/pdata v0.49.0 + go.uber.org/multierr v1.8.0 + golang.org/x/mod v0.5.1 + golang.org/x/text v0.3.7 +) + +require ( + bitbucket.org/atlassian/go-asap/v2 v2.6.0 // indirect + cloud.google.com/go v0.100.2 // indirect + cloud.google.com/go/compute v1.5.0 // indirect + cloud.google.com/go/monitoring v1.2.0 // indirect + cloud.google.com/go/spanner v1.31.0 // indirect + cloud.google.com/go/trace v1.0.0 // indirect + code.cloudfoundry.org/clock v1.0.0 // indirect + code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c // indirect + code.cloudfoundry.org/go-loggregator v7.4.0+incompatible // indirect + code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78 // indirect + contrib.go.opencensus.io/exporter/stackdriver v0.13.11 // indirect + github.com/Azure/azure-sdk-for-go v62.0.0+incompatible // indirect + github.com/Azure/go-autorest v14.2.0+incompatible // indirect + github.com/Azure/go-autorest/autorest v0.11.24 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.18 // indirect + github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect + github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect + github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect + github.com/Azure/go-autorest/logger v0.2.1 // indirect + github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/ClickHouse/clickhouse-go v1.5.4 // indirect + github.com/DataDog/agent-payload/v5 v5.0.19 // indirect + github.com/DataDog/datadog-agent/pkg/quantile v0.35.0 // indirect + github.com/DataDog/datadog-agent/pkg/trace/exportable v0.0.0-20201016145401-4646cf596b02 // indirect + github.com/DataDog/datadog-agent/pkg/util/log v0.0.0-20201009092105-58e18918b2db // indirect + github.com/DataDog/datadog-go v4.8.2+incompatible // indirect + github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.26.1-0.20220307211504-dc45061a44f9 // indirect + github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.3.0 // indirect + github.com/Microsoft/go-winio v0.5.1 // indirect + github.com/ReneKroon/ttlcache/v2 v2.11.0 // indirect + github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2 // indirect + github.com/Shopify/sarama v1.32.0 // indirect + github.com/Showmax/go-fqdn v1.0.0 // indirect + github.com/StackExchange/wmi v1.2.1 // indirect + github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect + github.com/aliyun/aliyun-log-go-sdk v0.1.29 // indirect + github.com/antonmedv/expr v1.9.0 // indirect + github.com/apache/thrift v0.16.0 // indirect + github.com/armon/go-metrics v0.3.10 // indirect + github.com/avast/retry-go v3.0.0+incompatible // indirect + github.com/aws/aws-sdk-go v1.43.37 // indirect + github.com/aws/aws-sdk-go-v2 v1.9.2 // indirect + github.com/aws/aws-sdk-go-v2/config v1.8.3 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.4.3 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.4.2 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.7.2 // indirect + github.com/aws/smithy-go v1.11.0 // indirect + github.com/beeker1121/goque v2.1.0+incompatible // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/blang/semver v3.5.1+incompatible // indirect + github.com/bmatcuk/doublestar/v3 v3.0.0 // indirect + github.com/caio/go-tdigest v3.1.0+incompatible // indirect + github.com/cenkalti/backoff v2.2.1+incompatible // indirect + github.com/cenkalti/backoff/v4 v4.1.3 // indirect + github.com/census-instrumentation/opencensus-proto v0.3.0 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/checkpoint-restore/go-criu/v5 v5.3.0 // indirect + github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect + github.com/cilium/ebpf v0.7.0 // indirect + github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 // indirect + github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e // indirect + github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 // indirect + github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490 // indirect + github.com/containerd/console v1.0.3 // indirect + github.com/containerd/containerd v1.6.1 // indirect + github.com/containerd/ttrpc v1.1.0 // indirect + github.com/coralogix/opentelemetry-cx-protobuf-api/coralogixpb v0.0.0-20211201100428-d2a5d0ecf53e // indirect + github.com/coreos/go-oidc v2.2.1+incompatible // indirect + github.com/coreos/go-systemd/v22 v22.3.2 // indirect + github.com/cyphar/filepath-securejoin v0.2.3 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/dennwc/varint v1.0.0 // indirect + github.com/dgraph-io/ristretto v0.1.0 // indirect + github.com/digitalocean/godo v1.75.0 // indirect + github.com/docker/distribution v2.8.0-beta.1+incompatible // indirect + github.com/docker/docker v20.10.14+incompatible // indirect + github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 // indirect + github.com/docker/go-units v0.4.0 // indirect + github.com/dustin/go-humanize v1.0.0 // indirect + github.com/dynatrace-oss/dynatrace-metric-utils-go v0.3.0 // indirect + github.com/eapache/go-resiliency v1.2.0 // indirect + github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect + github.com/eapache/queue v1.1.0 // indirect + github.com/elastic/go-elasticsearch/v7 v7.17.1 // indirect + github.com/elastic/go-structform v0.0.9 // indirect + github.com/envoyproxy/go-control-plane v0.10.1 // indirect + github.com/envoyproxy/protoc-gen-validate v0.6.6 // indirect + github.com/euank/go-kmsg-parser v2.0.0+incompatible // indirect + github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a // indirect + github.com/facebookgo/limitgroup v0.0.0-20150612190941-6abd8d71ec01 // indirect + github.com/facebookgo/muster v0.0.0-20150708232844-fd3d7953fd52 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/felixge/httpsnoop v1.0.2 // indirect + github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/getsentry/sentry-go v0.13.0 // indirect + github.com/go-kit/kit v0.11.0 // indirect + github.com/go-kit/log v0.2.0 // indirect + github.com/go-logfmt/logfmt v0.5.1 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect + github.com/go-redis/redis/v7 v7.4.1 // indirect + github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48 // indirect + github.com/go-sql-driver/mysql v1.6.0 // indirect + github.com/go-stack/stack v1.8.1 // indirect + github.com/go-zookeeper/zk v1.0.2 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/godbus/dbus/v5 v5.0.6 // indirect + github.com/gofrs/uuid v4.0.0+incompatible // indirect + github.com/gogo/googleapis v1.4.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang-jwt/jwt/v4 v4.2.0 // indirect + github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // 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/google/cadvisor v0.44.0 // indirect + github.com/google/go-cmp v0.5.7 // indirect + github.com/google/go-querystring v1.1.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/googleapis/gax-go/v2 v2.2.0 // indirect + github.com/googleapis/gnostic v0.5.6 // indirect + github.com/gophercloud/gophercloud v0.24.0 // indirect + github.com/gorilla/mux v1.8.0 // indirect + github.com/grafana/regexp v0.0.0-20220304095617-2e8d9baf4ac2 // indirect + github.com/grobie/gomemcache v0.0.0-20180201122607-1f779c573665 // indirect + github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect + github.com/hashicorp/consul/api v1.12.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-cleanhttp v0.5.2 // indirect + github.com/hashicorp/go-hclog v1.2.0 // indirect + github.com/hashicorp/go-immutable-radix v1.3.1 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/go-rootcerts v1.0.2 // indirect + github.com/hashicorp/go-uuid v1.0.2 // indirect + github.com/hashicorp/golang-lru v0.5.4 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/hashicorp/serf v0.9.6 // indirect + github.com/hetznercloud/hcloud-go v1.33.1 // indirect + github.com/honeycombio/libhoney-go v1.15.8 // indirect + github.com/iancoleman/strcase v0.2.0 // indirect + github.com/imdario/mergo v0.3.12 // indirect + github.com/influxdata/go-syslog/v3 v3.0.1-0.20210608084020-ac565dc76ba6 // indirect + github.com/influxdata/influxdb-observability/common v0.2.17 // indirect + github.com/influxdata/influxdb-observability/influx2otel v0.2.17 // indirect + github.com/influxdata/influxdb-observability/otel2influx v0.2.17 // indirect + github.com/influxdata/line-protocol/v2 v2.2.1 // indirect + github.com/jackc/chunkreader/v2 v2.0.1 // indirect + github.com/jackc/pgconn v1.11.0 // indirect + github.com/jackc/pgio v1.0.0 // indirect + github.com/jackc/pgpassfile v1.0.0 // indirect + github.com/jackc/pgproto3/v2 v2.2.0 // indirect + github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b // indirect + github.com/jackc/pgtype v1.10.0 // indirect + github.com/jackc/pgx/v4 v4.15.0 // indirect + github.com/jaegertracing/jaeger v1.32.0 // indirect + github.com/jcmturner/aescts/v2 v2.0.0 // indirect + github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect + github.com/jcmturner/gofork v1.0.0 // indirect + github.com/jcmturner/gokrb5/v8 v8.4.2 // indirect + github.com/jcmturner/rpc/v2 v2.0.3 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/jpillora/backoff v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/karrick/godirwalk v1.16.1 // indirect + github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect + github.com/klauspost/compress v1.15.1 // indirect + github.com/knadh/koanf v1.4.1 // indirect + github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b // indirect + github.com/leoluk/perflib_exporter v0.1.0 // indirect + github.com/lib/pq v1.10.5 // indirect + github.com/linode/linodego v1.3.0 // indirect + github.com/logzio/jaeger-logzio v1.0.4 // indirect + github.com/logzio/logzio-go v1.0.3 // indirect + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/magiconair/properties v1.8.6 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect + github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect + github.com/microsoft/ApplicationInsights-Go v0.4.4 // indirect + github.com/miekg/dns v1.1.46 // indirect + github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 // indirect + github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/hashstructure v1.1.0 // indirect + github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/sys/mountinfo v0.5.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/mongodb-forks/digest v1.0.3 // indirect + github.com/mostynb/go-grpc-compression v1.1.16 // indirect + github.com/mrunalp/fileutils v0.5.0 // indirect + github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect + github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1 // indirect + github.com/observiq/ctimefmt v1.0.0 // indirect + github.com/olivere/elastic v6.2.37+incompatible // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsprometheusremotewriteexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/dynatraceexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/f5cloudexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/honeycombexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/humioexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerthrifthttpexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/newrelicexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/parquetexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/skywalkingexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/stackdriverexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/tanzuobservabilityexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/tencentcloudlogserviceexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/asapauthextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/fluentbitextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarder v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/common v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/signalfx v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanmetricsprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dotnetdiagnosticsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusexecreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/skywalkingreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/wavefrontreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver v0.49.0 // indirect + github.com/open-telemetry/opentelemetry-log-collection v0.29.0 // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.0.2 // indirect + github.com/opencontainers/runc v1.1.0 // indirect + github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 // indirect + github.com/opencontainers/selinux v1.10.0 // indirect + github.com/openlyinc/pointy v1.1.2 // indirect + github.com/openshift/api v0.0.0-20210521075222-e273a339932a // indirect + github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/openzipkin/zipkin-go v0.4.0 // indirect + github.com/patrickmn/go-cache v2.1.0+incompatible // indirect + github.com/pelletier/go-toml v1.9.4 // indirect + github.com/philhofer/fwd v1.1.1 // indirect + github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/pquerna/cachecontrol v0.1.0 // indirect + github.com/prometheus/client_golang v1.12.1 // indirect + github.com/prometheus/client_model v0.2.0 // indirect + github.com/prometheus/common v0.33.0 // indirect + github.com/prometheus/common/sigv4 v0.1.0 // indirect + github.com/prometheus/procfs v0.7.3 // indirect + github.com/prometheus/prometheus v1.8.2-0.20220324155304-4d8bbfd4164c // indirect + github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rs/cors v1.8.2 // indirect + github.com/santhosh-tekuri/jsonschema v1.2.4 // indirect + github.com/scaleway/scaleway-sdk-go v1.0.0-beta.9 // indirect + github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921 // indirect + github.com/shirou/gopsutil v3.21.10+incompatible // indirect + github.com/shirou/gopsutil/v3 v3.22.3 // indirect + github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3 // indirect + github.com/signalfx/gohistogram v0.0.0-20160107210732-1ccfd2ff5083 // indirect + github.com/signalfx/golib/v3 v3.3.44 // indirect + github.com/signalfx/sapm-proto v0.9.0 // indirect + github.com/signalfx/signalfx-agent/pkg/apm v0.0.0-20201202163743-65b4fa925fc8 // indirect + github.com/sirupsen/logrus v1.8.1 // indirect + github.com/soheilhy/cmux v0.1.5 // indirect + github.com/spf13/afero v1.6.0 // indirect + github.com/spf13/cast v1.4.1 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.10.1 // indirect + github.com/stretchr/objx v0.3.0 // indirect + github.com/subosito/gotenv v1.2.0 // indirect + github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect + github.com/syndtr/goleveldb v1.0.0 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.382 // indirect + github.com/tg123/go-htpasswd v1.2.0 // indirect + github.com/tidwall/gjson v1.12.1 // indirect + github.com/tidwall/match v1.1.1 // indirect + github.com/tidwall/pretty v1.2.0 // indirect + github.com/tidwall/tinylru v1.1.0 // indirect + github.com/tidwall/wal v1.1.7 // indirect + github.com/tinylib/msgp v1.1.6 // indirect + github.com/tklauser/go-sysconf v0.3.10 // indirect + github.com/tklauser/numcpus v0.4.0 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/vincent-petithory/dataurl v1.0.0 // indirect + github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 // indirect + github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect + github.com/vmihailenco/msgpack/v5 v5.3.5 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/wavefronthq/wavefront-sdk-go v0.9.11 // indirect + github.com/xdg-go/pbkdf2 v1.0.0 // indirect + github.com/xdg-go/scram v1.1.1 // indirect + github.com/xdg-go/stringprep v1.0.3 // indirect + github.com/yusufpapurcu/wmi v1.2.2 // indirect + go.elastic.co/apm v1.15.0 // indirect + go.elastic.co/fastjson v1.1.0 // indirect + go.etcd.io/bbolt v1.3.6 // indirect + go.mongodb.org/atlas v0.15.0 // indirect + go.opencensus.io v0.23.0 // indirect + go.opentelemetry.io/collector/model v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 // indirect + go.opentelemetry.io/otel v1.6.3 // indirect + go.opentelemetry.io/otel/metric v0.29.0 // indirect + go.opentelemetry.io/otel/sdk v1.6.3 // indirect + go.opentelemetry.io/otel/trace v1.6.3 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/goleak v1.1.12 // indirect + go.uber.org/zap v1.21.0 // indirect + golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect + golang.org/x/net v0.0.0-20220325170049-de3da57026de // indirect + golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a // indirect + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886 // indirect + golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 // indirect + golang.org/x/tools v0.1.9 // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + gonum.org/v1/gonum v0.11.0 // indirect + google.golang.org/api v0.74.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb // indirect + google.golang.org/grpc v1.45.0 // indirect + google.golang.org/protobuf v1.28.0 // indirect + gopkg.in/DataDog/dd-trace-go.v1 v1.37.1 // indirect + gopkg.in/alexcesaro/statsd.v2 v2.0.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.66.2 // indirect + gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect + gopkg.in/square/go-jose.v2 v2.5.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 // indirect + k8s.io/api v0.23.5 // indirect + k8s.io/apimachinery v0.23.5 // indirect + k8s.io/client-go v0.23.5 // indirect + k8s.io/klog v1.0.0 // indirect + k8s.io/klog/v2 v2.40.1 // indirect + k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf // indirect + k8s.io/kubelet v0.23.5 // indirect + k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 // indirect + sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.1 // indirect + sigs.k8s.io/yaml v1.3.0 // indirect + skywalking.apache.org/repo/goapi v0.0.0-20220121092418-9c455d0dda3f // indirect +) + +// Replace references to modules that are in this repository with their relateive paths +// so that we always build with current (latest) version of the source code. + +replace github.com/open-telemetry/opentelemetry-collector-contrib => ../.. + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/awsutil => ../../internal/aws/awsutil + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/containerinsight => ../../internal/aws/containerinsight + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/cwlogs => ./../../internal/aws/cwlogs + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/ecsutil => ../../internal/aws/ecsutil + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/k8s => ../../internal/aws/k8s + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/metrics => ../../internal/aws/metrics + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/proxy => ../../internal/aws/proxy + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/aws/xray => ../../internal/aws/xray + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/common => ../../internal/common + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/containertest => ../../internal/containertest + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal => ../../internal/coreinternal + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/docker => ../../internal/docker + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/k8sconfig => ../../internal/k8sconfig + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/kubelet => ../../internal/kubelet + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/scrapertest => ../../internal/scrapertest + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/sharedcomponent => ../../internal/sharedcomponent + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk => ../../internal/splunk + +replace github.com/open-telemetry/opentelemetry-collector-contrib/internal/stanza => ../../internal/stanza + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/alibabacloudlogserviceexporter => ../../exporter/alibabacloudlogserviceexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awscloudwatchlogsexporter => ../../exporter/awscloudwatchlogsexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsemfexporter => ../../exporter/awsemfexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awskinesisexporter => ../../exporter/awskinesisexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsprometheusremotewriteexporter => ../../exporter/awsprometheusremotewriteexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/awsxrayexporter => ../../exporter/awsxrayexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/azuremonitorexporter => ../../exporter/azuremonitorexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/carbonexporter => ../../exporter/carbonexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter => ../../exporter/clickhouseexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/coralogixexporter => ../../exporter/coralogixexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/datadogexporter => ../../exporter/datadogexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/dynatraceexporter => ../../exporter/dynatraceexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticexporter => ../../exporter/elasticexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/elasticsearchexporter => ../../exporter/elasticsearchexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/f5cloudexporter => ../../exporter/f5cloudexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter => ../../exporter/fileexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudexporter => ../../exporter/googlecloudexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/googlecloudpubsubexporter => ../../exporter/googlecloudpubsubexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/honeycombexporter => ../../exporter/honeycombexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/humioexporter => ../../exporter/humioexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/influxdbexporter => ../../exporter/influxdbexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerexporter => ../../exporter/jaegerexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/jaegerthrifthttpexporter => ../../exporter/jaegerthrifthttpexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/kafkaexporter => ../../exporter/kafkaexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/loadbalancingexporter => ../../exporter/loadbalancingexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/logzioexporter => ../../exporter/logzioexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter => ../../exporter/lokiexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/newrelicexporter => ../../exporter/newrelicexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/opencensusexporter => ../../exporter/opencensusexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/parquetexporter => ../../exporter/parquetexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter => ../../exporter/prometheusexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter => ../../exporter/prometheusremotewriteexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sapmexporter => ../../exporter/sapmexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sentryexporter => ../../exporter/sentryexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/signalfxexporter => ../../exporter/signalfxexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/skywalkingexporter => ../../exporter/skywalkingexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter => ../../exporter/splunkhecexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/stackdriverexporter => ../../exporter/stackdriverexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/sumologicexporter => ../../exporter/sumologicexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/tanzuobservabilityexporter => ../../exporter/tanzuobservabilityexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/tencentcloudlogserviceexporter => ../../exporter/tencentcloudlogserviceexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/exporter/zipkinexporter => ../../exporter/zipkinexporter + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/asapauthextension => ../../extension/asapauthextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/awsproxy => ../../extension/awsproxy + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension => ../../extension/basicauthextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension => ../../extension/bearertokenauthextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/fluentbitextension => ../../extension/fluentbitextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension => ../../extension/healthcheckextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/httpforwarder => ../../extension/httpforwarder + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/oauth2clientauthextension => ../../extension/oauth2clientauthextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer => ../../extension/observer + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/ecstaskobserver => ../../extension/observer/ecstaskobserver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/hostobserver => ../../extension/observer/hostobserver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/observer/k8sobserver => ../../extension/observer/k8sobserver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/oidcauthextension => ../../extension/oidcauthextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension => ../../extension/pprofextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/sigv4authextension => ../../extension/sigv4authextension + +replace github.com/open-telemetry/opentelemetry-collector-contrib/extension/storage => ../../extension/storage + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr => ../../pkg/batchperresourceattr + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/winperfcounters => ../../pkg/winperfcounters + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchpersignal => ../../pkg/batchpersignal + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/experimentalmetricmetadata => ../../pkg/experimentalmetricmetadata + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry => ../../pkg/resourcetotelemetry + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/jaeger => ../../pkg/translator/jaeger + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/opencensus => ../../pkg/translator/opencensus + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheusremotewrite => ../../pkg/translator/prometheusremotewrite + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/signalfx => ../../pkg/translator/signalfx + +replace github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/zipkin => ../../pkg/translator/zipkin + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/attributesprocessor => ../../processor/attributesprocessor + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/cumulativetodeltaprocessor => ../../processor/cumulativetodeltaprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatorateprocessor => ../../processor/deltatorateprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/filterprocessor => ../../processor/filterprocessor + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbyattrsprocessor => ../../processor/groupbyattrsprocessor + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/groupbytraceprocessor => ../../processor/groupbytraceprocessor + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/k8sattributesprocessor => ../../processor/k8sattributesprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricsgenerationprocessor => ../../processor/metricsgenerationprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/metricstransformprocessor => ../../processor/metricstransformprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/probabilisticsamplerprocessor => ../../processor/probabilisticsamplerprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor => ../../processor/resourcedetectionprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor => ../../processor/resourceprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/routingprocessor => ../../processor/routingprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanmetricsprocessor => ../../processor/spanmetricsprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/spanprocessor => ../../processor/spanprocessor/ + +replace github.com/open-telemetry/opentelemetry-collector-contrib/processor/tailsamplingprocessor => ../../processor/tailsamplingprocessor + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awscontainerinsightreceiver => ../../receiver/awscontainerinsightreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsecscontainermetricsreceiver => ../../receiver/awsecscontainermetricsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsfirehosereceiver => ../../receiver/awsfirehosereceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/awsxrayreceiver => ../../receiver/awsxrayreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/carbonreceiver => ../../receiver/carbonreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/cloudfoundryreceiver => ../../receiver/cloudfoundryreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/collectdreceiver => ../../receiver/collectdreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dockerstatsreceiver => ../../receiver/dockerstatsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/dotnetdiagnosticsreceiver => ../../receiver/dotnetdiagnosticsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver => ../../receiver/filelogreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver => ../../receiver/fluentforwardreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudpubsubreceiver => ../../receiver/googlecloudpubsubreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/googlecloudspannerreceiver => ../../receiver/googlecloudspannerreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver => ../../receiver/hostmetricsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/influxdbreceiver => ../../receiver/influxdbreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jaegerreceiver => ../../receiver/jaegerreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/jmxreceiver => ../../receiver/jmxreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/journaldreceiver => ../../receiver/journaldreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver => ../../receiver/k8sclusterreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkametricsreceiver => ../../receiver/kafkametricsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8seventsreceiver => ../../receiver/k8seventsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kafkareceiver => ../../receiver/kafkareceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/kubeletstatsreceiver => ../../receiver/kubeletstatsreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/memcachedreceiver => ../../receiver/memcachedreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mongodbatlasreceiver => ../../receiver/mongodbatlasreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/mysqlreceiver => ../../receiver/mysqlreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver => ../../receiver/opencensusreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/podmanreceiver => ../../receiver/podmanreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/postgresqlreceiver => ../../receiver/postgresqlreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusexecreceiver => ../../receiver/prometheusexecreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver => ../../receiver/prometheusreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/receivercreator => ../../receiver/receivercreator + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/redisreceiver => ../../receiver/redisreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/riakreceiver => ../../receiver/riakreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/sapmreceiver => ../../receiver/sapmreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/signalfxreceiver => ../../receiver/signalfxreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/simpleprometheusreceiver => ../../receiver/simpleprometheusreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/skywalkingreceiver => ../../receiver/skywalkingreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/splunkhecreceiver => ../../receiver/splunkhecreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/statsdreceiver => ../../receiver/statsdreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/syslogreceiver => ../../receiver/syslogreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/tcplogreceiver => ../../receiver/tcplogreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/udplogreceiver => ../../receiver/udplogreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/wavefrontreceiver => ../../receiver/wavefrontreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/windowsperfcountersreceiver => ../../receiver/windowsperfcountersreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver => ../../receiver/zipkinreceiver + +replace github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zookeeperreceiver => ../../receiver/zookeeperreceiver + +// see https://github.com/google/gnostic/issues/262 +replace github.com/googleapis/gnostic v0.5.6 => github.com/googleapis/gnostic v0.5.5 + +// see https://github.com/go-chi/chi/issues/713 +// see https://github.com/DataDog/dd-trace-go/issues/1220 +replace github.com/go-chi/chi/v4 => github.com/go-chi/chi v4.0.0+incompatible + +// see https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/4433 +exclude github.com/StackExchange/wmi v1.2.0 + +// see https://github.com/distribution/distribution/issues/3590 +exclude github.com/docker/distribution v2.8.0+incompatible diff --git a/cmd/configschema/go.sum b/cmd/configschema/go.sum new file mode 100644 index 00000000..93b634d8 --- /dev/null +++ b/cmd/configschema/go.sum @@ -0,0 +1,3534 @@ +4d63.com/gochecknoglobals v0.0.0-20201008074935-acfc0b28355a/go.mod h1:wfdC5ZjKSPr7CybKEcgJhUOgeAQW1+7WcyK8OvUilfo= +bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= +bitbucket.org/atlassian/go-asap/v2 v2.6.0 h1:KiLw3IgbzFLqNxCrVZoKUDJKMxUGoOd+NEOYXGEBhJ0= +bitbucket.org/atlassian/go-asap/v2 v2.6.0/go.mod h1:cuRgWb7eeGtsocKmqY2kPlMMlwpkeNh+QOIkjAMlUBc= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.43.0/go.mod h1:BOSR3VbTLkk6FDC/TcffxP4NF/FFBGA5ku+jvKOP7pg= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.51.0/go.mod h1:hWtGJ6gnXH+KgDv+V0zFGDvpi07n3z8ZNj3T1RW0Gcw= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.88.0/go.mod h1:dnKwfYbP9hQhefiUvpbcAyoGSHUrOxR20JVElLiUvEY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go v0.94.1/go.mod h1:qAlAugsXlC+JWO+Bke5vCtc9ONxjQT3drlTTnAplMW4= +cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= +cloud.google.com/go v0.98.0/go.mod h1:ua6Ush4NALrHk5QXDWnjvZHN93OuF0HfuEPq9I1X0cM= +cloud.google.com/go v0.99.0/go.mod h1:w0Xx2nLzqWJPuozYQX+hFfCSI8WioryfRDzkoI/Y2ZA= +cloud.google.com/go v0.100.2 h1:t9Iw5QH5v4XtlEQaCtUY7x6sCABps8sW0acw7e2WQ6Y= +cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w99A= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/bigtable v1.2.0/go.mod h1:JcVAOl45lrTmQfLj7T6TxyMzIN/3FGGcFm+2xVAli2o= +cloud.google.com/go/compute v0.1.0/go.mod h1:GAesmwr110a34z04OlxYkATPBEfVhkymfTBXtfbBFow= +cloud.google.com/go/compute v1.2.0/go.mod h1:xlogom/6gr8RJGBe7nT2eGsQYAFUbbv8dbC29qE3Xmw= +cloud.google.com/go/compute v1.3.0/go.mod h1:cCZiE1NHEtai4wiufUhW8I8S1JKkAnhnQJWM7YD99wM= +cloud.google.com/go/compute v1.5.0 h1:b1zWmYuuHz7gO9kDcM/EpHGr06UgsYNRpNJzI2kFiLM= +cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6mkzQJeu0M= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= +cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= +cloud.google.com/go/monitoring v1.1.0/go.mod h1:L81pzz7HKn14QCMaCs6NTQkdBnE87TElyanS95vIcl4= +cloud.google.com/go/monitoring v1.2.0 h1:fEvQITrhVcPM6vuDQcgPMbU5kZFeQFwZmE7v6+S8BPo= +cloud.google.com/go/monitoring v1.2.0/go.mod h1:tE8I08OzjWmXLhCopnPaUDpfGOEJOonfWXGR9E9SsFo= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/pubsub v1.4.0/go.mod h1:LFrqilwgdw4X2cJS9ALgzYmMu+ULyrUN6IHV3CPK4TM= +cloud.google.com/go/spanner v1.31.0 h1:JTjuqgKkLEBEYT4JhHu4/GMTeDyRnNyzdFiv37J5fZI= +cloud.google.com/go/spanner v1.31.0/go.mod h1:ztDJVUZgEA2xc7HjSNQG+d+2L0bOSsw876/5Hnr78U8= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +cloud.google.com/go/trace v1.0.0 h1:laKx2y7IWMjguCe5zZx6n7qLtREk4kyE69SXVC0VSN8= +cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A= +code.cloudfoundry.org/bytefmt v0.0.0-20190710193110-1eb035ffe2b6/go.mod h1:wN/zk7mhREp/oviagqUXY3EwuHhWyOvAdsn5Y4CzOrc= +code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= +code.cloudfoundry.org/clock v1.0.0 h1:kFXWQM4bxYvdBw2X8BbBeXwQNgfoWv1vqAk2ZZyBN2o= +code.cloudfoundry.org/clock v1.0.0/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= +code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c h1:N2GMlHc/SJQk7BkaME/kDHaciVTy4NuRmxVJLhnqKK8= +code.cloudfoundry.org/go-diodes v0.0.0-20211115184647-b584dd5df32c/go.mod h1:o7lq/SmHshDVxHdRJ/fMT3VPcoXyE1HcRXbG8QibO3k= +code.cloudfoundry.org/go-loggregator v7.4.0+incompatible h1:KqZYloMQWM5Zg/BQKunOIA4OODh7djZbk48qqbowNFI= +code.cloudfoundry.org/go-loggregator v7.4.0+incompatible/go.mod h1:KPBTRqj+y738Nhf1+g4JHFaBU8j7dedirR5ETNHvMXU= +code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78 h1:mrZQaZmuDIPhSp6b96b+CRKC2uH44ifa5cjDV2epKis= +code.cloudfoundry.org/rfc5424 v0.0.0-20201103192249-000122071b78/go.mod h1:tkZo8GtzBjySJ7USvxm4E36lNQw1D3xM6oKHGqdaAJ4= +collectd.org v0.3.0/go.mod h1:A/8DzQBkF6abtvrT2j/AU/4tiBgJWYyh0y/oB/4MlWE= +contrib.go.opencensus.io/exporter/prometheus v0.3.0/go.mod h1:rpCPVQKhiyH8oomWgm34ZmgIdZa8OVYO5WAIygPbBBE= +contrib.go.opencensus.io/exporter/prometheus v0.4.1 h1:oObVeKo2NxpdF/fIfrPsNj6K0Prg0R0mHM+uANlYMiM= +contrib.go.opencensus.io/exporter/prometheus v0.4.1/go.mod h1:t9wvfitlUjGXG2IXAZsuFq26mDGid/JwCEXp+gTG/9U= +contrib.go.opencensus.io/exporter/stackdriver v0.13.11 h1:YzmWJ2OT2K3ouXyMm5FmFQPoDs5TfLjx6Xn5x5CLN0I= +contrib.go.opencensus.io/exporter/stackdriver v0.13.11/go.mod h1:I5htMbyta491eUxufwwZPQdcKvvgzMB4O9ni41YnIM8= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= +github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96/go.mod h1:bOvUY6CB00SOBii9/FifXqc0awNKxLFCL/+pkDPuyl8= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v52.5.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v62.0.0+incompatible h1:8N2k27SYtc12qj5nTsuFMFJPZn5CGmgMWqTy4y9I7Jw= +github.com/Azure/azure-sdk-for-go v62.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest v0.11.12/go.mod h1:eipySxLmqSyC5s5k1CLupqet0PSENBEDP93LQ9a8QYw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest v0.11.24 h1:1fIGgHKqVm54KIPT+q8Zmd1QlVsmHqeUGso5qm2BqqE= +github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= +github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/adal v0.9.18 h1:kLnPsRjzZZUF3K5REu/Kc+qMQrvuza2bwSnNdhmzLfQ= +github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= +github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1 h1:K0laFcLE6VLTOwNgSxaGbUcLPuGXlNkbVvq4cW4nIHk= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= +github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= +github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= +github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= +github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/ClickHouse/clickhouse-go v1.5.4 h1:cKjXeYLNWVJIx2J1K6H2CqyRmfwVJVY1OV1coaaFcI0= +github.com/ClickHouse/clickhouse-go v1.5.4/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/DataDog/agent-payload/v5 v5.0.19 h1:Qm89IzxFz1tUlhg6XZLEePENOlUlXmd/MPs8tOsWOeQ= +github.com/DataDog/agent-payload/v5 v5.0.19/go.mod h1:2gapp8p4Vd548JI+axD8kCExklNvVI6AMF5/+IfN/4g= +github.com/DataDog/datadog-agent/pkg/obfuscate v0.0.0-20211129110424-6491aa3bf583/go.mod h1:EP9f4GqaDJyP1F5jTNMtzdIpw3JpNs3rMSJOnYywCiw= +github.com/DataDog/datadog-agent/pkg/quantile v0.35.0 h1:GKbiy59+Q0jc9MLV8I5aUeUC8/ubnIMmm8y2IZcT//8= +github.com/DataDog/datadog-agent/pkg/quantile v0.35.0/go.mod h1:UsCz7/ojY6EFWgJht3m4GP1HPCQNgI1fIG7kBzsTOLs= +github.com/DataDog/datadog-agent/pkg/trace/exportable v0.0.0-20201016145401-4646cf596b02 h1:N2BRKjJ/c+ipDwt5b+ijqEc2EsmK3zXq2lNeIPnSwMI= +github.com/DataDog/datadog-agent/pkg/trace/exportable v0.0.0-20201016145401-4646cf596b02/go.mod h1:EalMiS87Guu6PkLdxz7gmWqi+dRs9sjYLTOyTrM/aVU= +github.com/DataDog/datadog-agent/pkg/util/log v0.0.0-20201009091607-ce4e57cdf8f4/go.mod h1:cRy7lwapA3jcjnX74kU6NFkXaRGQyB0l/QZA0IwYGEQ= +github.com/DataDog/datadog-agent/pkg/util/log v0.0.0-20201009092105-58e18918b2db h1:anQGy1tCkgx8uhOWks3KDhW5/S2mZ3pqFVoIT1XWaCk= +github.com/DataDog/datadog-agent/pkg/util/log v0.0.0-20201009092105-58e18918b2db/go.mod h1:cRy7lwapA3jcjnX74kU6NFkXaRGQyB0l/QZA0IwYGEQ= +github.com/DataDog/datadog-agent/pkg/util/winutil v0.0.0-20201009092105-58e18918b2db/go.mod h1:EtS4X73GXAyrpVddkLQ4SewSQX+zv284e8iIkVBXgtk= +github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/datadog-go v3.5.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/datadog-go v4.8.2+incompatible h1:qbcKSx29aBLD+5QLvlQZlGmRMF/FfGqFLFev/1TDzRo= +github.com/DataDog/datadog-go v4.8.2+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/DataDog/datadog-go/v5 v5.0.2/go.mod h1:ZI9JFB4ewXbw1sBnF4sxsR2k1H3xjV+PUAOUsHvKpcU= +github.com/DataDog/gostackparse v0.5.0/go.mod h1:lTfqcJKqS9KnXQGnyQMCugq3u1FP6UZMfWR0aitKFMM= +github.com/DataDog/sketches-go v1.0.0/go.mod h1:O+XkJHWk9w4hDwY2ZUDU31ZC9sNYlYo8DiFsxjYeo1k= +github.com/DataDog/zstd v1.3.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.3.6-0.20190409195224-796139022798/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.4.4/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= +github.com/DataDog/zstd v1.5.0 h1:+K/VEwIAaPcHiMtQvpLD4lqW7f0Gk3xdYZmI1hD+CXo= +github.com/DataDog/zstd v1.5.0/go.mod h1:g4AWEaM3yOg3HYfnJ3YIawPnVdXJh9QME85blwSAmyw= +github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= +github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962 h1:KeNholpO2xKjgaaSyd+DyQRrsQjhbSeS7qe4nEw8aQw= +github.com/GehirnInc/crypt v0.0.0-20200316065508-bb7000b8a962/go.mod h1:kC29dT1vFpj7py2OvG1khBdQpo3kInWP+6QipLbdngo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.26.1-0.20220307211504-dc45061a44f9 h1:M44b4uiPlQyME2csIZe2Y4e7SWqiy4EDxr8dQOyQdoM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/collector v0.26.1-0.20220307211504-dc45061a44f9/go.mod h1:Z7plfwo3blT8QBtl+nnZeDHf3MOKbzrwgmE0gQwm6f0= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.0.0/go.mod h1:jE23wM1jvwSKgdGcoOkj5j9n1VWtncW36pL2bK1JU+0= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.3.0 h1:JLLDOHEcoREA54hzOnjr8KQcZCvX0E8KhosjE0F1jaQ= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.3.0/go.mod h1:Pe8G2QFgCaohbU/zHRBjn0YaFh9z8/HtuEDh/Lyo04E= +github.com/HdrHistogram/hdrhistogram-go v0.9.0/go.mod h1:nxrse8/Tzg2tg3DZcZjm6qEclQKK70g0KxO61gFFZD4= +github.com/HdrHistogram/hdrhistogram-go v1.0.1/go.mod h1:BWJ+nMSHY3L41Zj7CA3uXnloDp7xxV0YvstAE7nKTaM= +github.com/HdrHistogram/hdrhistogram-go v1.1.0 h1:6dpdDPTRoo78HxAJ6T1HfMiKSnqhgRRqzCuPshRkQ7I= +github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= +github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= +github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.15/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.1 h1:aPJp2QD7OOrhO5tQXqQoGSJc+DjDtWTGLOmNyAm6FgY= +github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.9.2 h1:wB06W5aYFfUB3IvootYAY2WnOmIdgPGfqSI6tufQNnY= +github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= +github.com/Mottl/ctimefmt v0.0.0-20190803144728-fd2ac23a585a/go.mod h1:eyj2WSIdoPMPs2eNTLpSmM6Nzqo4V80/d6jHpnJ1SAI= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= +github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/ReneKroon/ttlcache/v2 v2.11.0 h1:OvlcYFYi941SBN3v9dsDcC2N8vRxyHcCmJb3Vl4QMoM= +github.com/ReneKroon/ttlcache/v2 v2.11.0/go.mod h1:mBxvsNY+BT8qLLd6CuAJubbKo6r0jh3nb5et22bbfGY= +github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2 h1:koK7z0nSsRiRiBWwa+E714Puh+DO+ZRdIyAXiXzL+lg= +github.com/SermoDigital/jose v0.9.2-0.20161205224733-f6df55f235c2/go.mod h1:ARgCUhI1MHQH+ONky/PAtmVHQrP5JlGY0F3poXOp/fA= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= +github.com/Shopify/sarama v1.22.0/go.mod h1:lm3THZ8reqBDBQKQyb5HB3sY1lKp3grEbQ81aWSgPp4= +github.com/Shopify/sarama v1.22.2-0.20190604114437-cd910a683f9f/go.mod h1:XLH1GYJnLVE0XCr6KdJGVJRTwY30moWNJ4sERjXX6fs= +github.com/Shopify/sarama v1.29.0/go.mod h1:2QpgD79wpdAESqNQMxNc0KYMkycd4slxGdV3TWSVqrU= +github.com/Shopify/sarama v1.29.1/go.mod h1:mdtqvCSg8JOxk8PmpTNGyo6wzd4BMm4QXSfDnTXmgkE= +github.com/Shopify/sarama v1.30.0/go.mod h1:zujlQQx1kzHsh4jfV1USnptCQrHAEZ2Hk8fTKCulPVs= +github.com/Shopify/sarama v1.31.0/go.mod h1:BeW3gXRc/CxgAsrSly2RE9nIXUfC9ezb7QHBPVhvzjI= +github.com/Shopify/sarama v1.32.0 h1:P+RUjEaRU0GMMbYexGMDyrMkLhbbBVUVISDywi+IlFU= +github.com/Shopify/sarama v1.32.0/go.mod h1:+EmJJKZWVT/faR9RcOxJerP+LId4iWdQPBGLy1Y1Njs= +github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= +github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= +github.com/Shopify/toxiproxy/v2 v2.1.6-0.20210914104332-15ea381dcdae/go.mod h1:/cvHQkZ1fst0EmZnA5dFtiQdWCNCFYzb+uE2vqVgvx0= +github.com/Shopify/toxiproxy/v2 v2.3.0 h1:62YkpiP4bzdhKMH+6uC5E95y608k3zDwdzuBMsnn3uQ= +github.com/Shopify/toxiproxy/v2 v2.3.0/go.mod h1:KvQTtB6RjCJY4zqNJn7C7JDFgsG5uoHYDirfUfpIm0c= +github.com/Showmax/go-fqdn v1.0.0 h1:0rG5IbmVliNT5O19Mfuvna9LL7zlHyRfsSvBPZmF9tM= +github.com/Showmax/go-fqdn v1.0.0/go.mod h1:SfrFBzmDCtCGrnHhoDjuvFnKsWjEQX/Q9ARZvOrJAko= +github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/StackExchange/wmi v0.0.0-20210224194228-fe8f1750fd46/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= +github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrdtl/UvroE= +github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= +github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= +github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= +github.com/alecthomas/units v0.0.0-20210208195552-ff826a37aa15/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/aliyun/aliyun-log-go-sdk v0.1.29 h1:LOj/gVRUyWi2jMFuYc3Zs5I3VDNn33oj8eTbrzVH/CM= +github.com/aliyun/aliyun-log-go-sdk v0.1.29/go.mod h1:aBG0R+MWRTgvlIODQkz+a3/RM9bQYKsmSbKdbIx4vpc= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/andybalholm/brotli v1.0.0/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= +github.com/andybalholm/brotli v1.0.2/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= +github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/antonmedv/expr v1.8.9/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= +github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU= +github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= +github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0= +github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.14.1/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.14.2/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= +github.com/apache/thrift v0.15.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= +github.com/apache/thrift v0.16.0/go.mod h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.3.0/go.mod h1:zXjbSimjXTd7vOpY8B0/2LpvNvDoXBuplAD+gJD3GYs= +github.com/armon/go-metrics v0.3.3/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-metrics v0.3.10 h1:FR+drcQStOe+32sYyJYyZ7FIdgoGGBnwLl+flodp8Uo= +github.com/armon/go-metrics v0.3.10/go.mod h1:4O98XIr/9W0sxpJ8UaYkvjk10Iff7SnFrb4QAOwNTFc= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= +github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= +github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/ashanbrown/forbidigo v1.1.0/go.mod h1:vVW7PEdqEFqapJe95xHkTfB1+XvZXBFg8t0sG2FIxmI= +github.com/ashanbrown/makezero v0.0.0-20201205152432-7b7cdbb3025a/go.mod h1:oG9Dnez7/ESBqc4EdrdNlryeo7d0KcW1ftXHm7nU/UU= +github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0= +github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY= +github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= +github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/aws/aws-sdk-go v1.25.37/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= +github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= +github.com/aws/aws-sdk-go v1.35.24/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k= +github.com/aws/aws-sdk-go v1.37.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.38.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.38.35/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.38.68/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= +github.com/aws/aws-sdk-go v1.40.11/go.mod h1:585smgzpB/KqRA+K3y/NL/oYRqQvpNJYvLm+LY1U59Q= +github.com/aws/aws-sdk-go v1.43.10/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.43.37 h1:kyZ7UjaPZaCik+asF33UFOOYSwr9liDRr/UM/vuw8yY= +github.com/aws/aws-sdk-go v1.43.37/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= +github.com/aws/aws-sdk-go-v2 v1.0.0/go.mod h1:smfAbmpW+tcRVuNUjo3MOArSZmW72t62rkCzc2i0TWM= +github.com/aws/aws-sdk-go-v2 v1.7.0/go.mod h1:tb9wi5s61kTDA5qCkcDbt3KRVV74GGslQkl/DRdX/P4= +github.com/aws/aws-sdk-go-v2 v1.9.2 h1:dUFQcMNZMLON4BOe273pl0filK9RqyQMhCK/6xssL6s= +github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= +github.com/aws/aws-sdk-go-v2/config v1.0.0/go.mod h1:WysE/OpUgE37tjtmtJd8GXgT8s1euilE5XtUkRNUQ1w= +github.com/aws/aws-sdk-go-v2/config v1.8.3 h1:o5583X4qUfuRrOGOgmOcDgvr5gJVSu57NK08cWAhIDk= +github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= +github.com/aws/aws-sdk-go-v2/credentials v1.0.0/go.mod h1:/SvsiqBf509hG4Bddigr3NB12MIpfHhZapyBurJe8aY= +github.com/aws/aws-sdk-go-v2/credentials v1.4.3 h1:LTdD5QhK073MpElh9umLLP97wxphkgVC/OjQaEbBwZA= +github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.0.0/go.mod h1:wpMHDCXvOXZxGCRSidyepa8uJHY4vaBGfY2/+oKU/Bc= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0 h1:9tfxW/icbSu98C2pcNynm5jmDwU3/741F11688B6QnU= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4 h1:leSJ6vCqtPpTmBIgE7044B1wql1E4n//McF+mEgNrYg= +github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= +github.com/aws/aws-sdk-go-v2/service/cloudwatch v1.5.0/go.mod h1:acH3+MQoiMzozT/ivU+DbRg7Ooo2298RdRaWcOv+4vM= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.0.0/go.mod h1:3jExOmpbjgPnz2FJaMOfbSk1heTkZ66aD3yNtVhnjvI= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2 h1:r7jel2aa4d9Duys7wEmWqDd5ebpC9w6Kxu6wIjjp18E= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= +github.com/aws/aws-sdk-go-v2/service/sqs v1.0.0/go.mod h1:w5BclCU8ptTbagzXS/fHBr+vAyXUjggg/72qDIURKMk= +github.com/aws/aws-sdk-go-v2/service/sso v1.0.0/go.mod h1:qNdDupP6xoM//zL1JmPl2XGbyPL5kKrlsoYVh8XZxzQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.4.2 h1:pZwkxZbspdqRGzddDB92bkZBoB7lg85sMRE7OqdB3V0= +github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= +github.com/aws/aws-sdk-go-v2/service/sts v1.0.0/go.mod h1:5f+cELGATgill5Pu3/vK3Ebuigstc+qYEHW5MvGWZO4= +github.com/aws/aws-sdk-go-v2/service/sts v1.7.2 h1:ol2Y5DWqnJeKqNd8th7JWzBtqu63xpOfs1Is+n1t8/4= +github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= +github.com/aws/smithy-go v1.0.0/go.mod h1:EzMw8dbp/YJL4A5/sbhGddag+NPT7q084agLbB9LgIw= +github.com/aws/smithy-go v1.5.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/aws/smithy-go v1.11.0 h1:nOfSDwiiH232f90OuevPnAEQO5ZqH+xnn8uGVsvBCw4= +github.com/aws/smithy-go v1.11.0/go.mod h1:3xHYmszWVx2c0kIwQeEVf9uSm4fYZt67FBJnwub1bgM= +github.com/beeker1121/goque v2.1.0+incompatible h1:m5pZ5b8nqzojS2DF2ioZphFYQUqGYsDORq6uefUItPM= +github.com/beeker1121/goque v2.1.0+incompatible/go.mod h1:L6dOWBhDOnxUVQsb0wkLve0VCnt2xJW/MI8pdRX4ANw= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= +github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk= +github.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/bkielbasa/cyclop v1.2.0/go.mod h1:qOI0yy6A7dYC4Zgsa72Ppm9kONl0RoIlPbzot9mhmeI= +github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmatcuk/doublestar/v3 v3.0.0 h1:TQtVPlDnAYwcrVNB2JiGuMc++H5qzWZd9PhkNo5WyHI= +github.com/bmatcuk/doublestar/v3 v3.0.0/go.mod h1:6PcTVMw80pCY1RVuoqu3V++99uQB3vsSYKPTd8AWA0k= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= +github.com/bombsimon/wsl/v3 v3.2.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc= +github.com/bradfitz/gomemcache v0.0.0-20220106215444-fb4bf637b56d/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/bsm/sarama-cluster v2.1.13+incompatible/go.mod h1:r7ao+4tTNXvWm+VRpRJchr2kQhqxgmAp2iEX5W96gMM= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/c-bata/go-prompt v0.2.2/go.mod h1:VzqtzE2ksDBcdln8G7mk2RX9QyGjH+OVqOCSiVIqS34= +github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds= +github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI= +github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= +github.com/casbin/casbin/v2 v2.31.6/go.mod h1:vByNa/Fchek0KZUgG5wEsl7iFsiviAYKRtgrQfcJqHg= +github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= +github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4= +github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/census-instrumentation/opencensus-proto v0.3.0 h1:t/LhUZLVitR1Ow2YOnduCsavhwFUklBMoGVYUCqmCqk= +github.com/census-instrumentation/opencensus-proto v0.3.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/charithe/durationcheck v0.0.6/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6prSM8ap1UCpNKtgg= +github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= +github.com/checkpoint-restore/go-criu/v5 v5.3.0 h1:wpFFOoomK3389ue2lAb0Boag6XPht5QYpipxmSNL4d8= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= +github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.7.0 h1:1k/q3ATgxSXRdrmPfH8d7YK0GfqVsEKZAX9dQZvs56k= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= +github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg= +github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80= +github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e h1:DFYA2+zpeaTPEOizAJuaee2O7YX3UP5tOMjkeXL8iLo= +github.com/cloudfoundry-incubator/uaago v0.0.0-20190307164349-8136b7bbe76e/go.mod h1:8wJCVaTSjT8phXCkbZWAKIB9JU8BEVHbnSbLgkr8WfY= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4 h1:hzAQntlaYRkVSFEfj9OTWlVV1H155FMD8BTKktLv0QI= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490 h1:KwaoQzs/WeUxxJqiJsZ4euOly1Az/IgZXXSxlD/UBNk= +github.com/cncf/xds/go v0.0.0-20211130200136-a8f946100490/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I= +github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= +github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= +github.com/confluentinc/confluent-kafka-go v1.4.0/go.mod h1:u2zNLny2xq+5rWeTQjFHbDzzNuba4P1vo31r9r4uAdg= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= +github.com/containerd/cgroups v1.0.3 h1:ADZftAkglvCiD44c77s5YmMqaP2pzVCFZvBmAlBdAP4= +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= +github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= +github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.4/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.12/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= +github.com/containerd/containerd v1.6.1 h1:oa2uY0/0G+JX4X7hpGCYvkp9FjUancz56kSNnb1sG3o= +github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200709052629-daa8e1ccc0bc/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= +github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.1.0 h1:GbtyLRxb0gOLR0TYQWt3O6B0NvT8tMdorEHqIQo/lWI= +github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= +github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= +github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/coralogix/opentelemetry-cx-protobuf-api/coralogixpb v0.0.0-20211201100428-d2a5d0ecf53e h1:jeIFnS5wvoZgrdadutLZ153dxdbDTtR9yRuuawcZFcE= +github.com/coralogix/opentelemetry-cx-protobuf-api/coralogixpb v0.0.0-20211201100428-d2a5d0ecf53e/go.mod h1:XlAHLMG+7uXWWcm+1GWhp+Bc7ytazqcd96s32qYL7Bc= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= +github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/crossdock/crossdock-go v0.0.0-20160816171116-049aabb0122b/go.mod h1:v9FBN7gdVTpiD/+LZ7Po0UKvROyT87uLVxTHVky/dlQ= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= +github.com/daixiang0/gci v0.2.8/go.mod h1:+4dZ7TISfSmqfAGv59ePaHfNzgGtIkHAhhdKggP1JAc= +github.com/dave/jennifer v1.2.0/go.mod h1:fIb+770HOpJ2fmN9EPPKOqm1vMGhB+TwXKMZhrIygKg= +github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +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= +github.com/denis-tingajkin/go-header v0.4.2/go.mod h1:eLRHAVXzE5atsKAnNRDB90WHCFFnBUn4RN0nRcs1LJA= +github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/denisenkom/go-mssqldb v0.11.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= +github.com/dennwc/varint v1.0.0 h1:kGNFFSSw8ToIy3obO/kKr8U9GZYUAxQEVuix4zfDWzE= +github.com/dennwc/varint v1.0.0/go.mod h1:hnItb35rvZvJrbTALZtY/iQfDs48JKRG1RPpgziApxA= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/dgraph-io/badger v1.6.2/go.mod h1:JW2yswe3V058sS0kZ2h/AXeDSqFjxnZcRrVH//y2UQE= +github.com/dgraph-io/badger/v3 v3.2103.0/go.mod h1:GHMCYxuDWyzbHkh4k3yyg4PM61tJPFfEGSMbE3Vd5QE= +github.com/dgraph-io/badger/v3 v3.2103.1/go.mod h1:dULbq6ehJ5K0cGW/1TQ9iSfUk0gbSiToDWmWmTsJ53E= +github.com/dgraph-io/badger/v3 v3.2103.2/go.mod h1:RHo4/GmYcKKh5Lxu63wLEMHJ70Pac2JqZRYGhlyAo2M= +github.com/dgraph-io/ristretto v0.0.1/go.mod h1:T40EBc7CJke8TkpiYfGGKAeFjSaxuFXhuXRyumBd6RE= +github.com/dgraph-io/ristretto v0.0.2/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.0.3/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/ristretto v0.0.4-0.20210309073149-3836124cdc5a/go.mod h1:MIonLggsKgZLUSt414ExgwNtlOL5MuEoAJP514mwGe8= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= +github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-bitstream v0.0.0-20180413035011-3522498ce2c8/go.mod h1:VMaSuZ+SZcx/wljOQKvp5srsbCiKDEb6K2wC4+PiBmQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/digitalocean/godo v1.58.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU= +github.com/digitalocean/godo v1.75.0 h1:UijUv60I095CqJqGKdjY2RTPnnIa4iFddmq+1wfyS4Y= +github.com/digitalocean/godo v1.75.0/go.mod h1:GBmu8MkjZmNARE7IXRPmkbbnocNN8+uBm0xbEVw2LCs= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= +github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= +github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.0-beta.1+incompatible h1:9MjVa+OTMHm4C0kKZB68jPlDM9Cg75ta4i46Gxxxn8o= +github.com/docker/distribution v2.8.0-beta.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v1.4.2-0.20200319182547-c7ad2b866182/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.12+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.14+incompatible h1:+T9/PRYWNDo5SZl5qS1r9Mo/0Q8AwxKKPtu9S1yxM0w= +github.com/docker/docker v20.10.14+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11 h1:IPrmumsT9t5BS7XcPhgsCTlkWbYg80SEXUzDpReaU6Y= +github.com/docker/go-connections v0.4.1-0.20210727194412-58542c764a11/go.mod h1:a6bNUGTbQBsY6VRHTr4h/rkOXjl244DyRD0tx3fgq4Q= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dropbox/godropbox v0.0.0-20180512210157-31879d3884b9 h1:NAvZb7gqQfLSNBPzVsvI7eZMosXtg2g2kxXrei90CtU= +github.com/dropbox/godropbox v0.0.0-20180512210157-31879d3884b9/go.mod h1:glr97hP/JuXb+WMYCizc4PIFuzw1lCR97mwbe1VVXhQ= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dynatrace-oss/dynatrace-metric-utils-go v0.3.0 h1:q2Ayh9s6Cr75bS5URiOUAoyFXemgKQaBJphbhAaJHCY= +github.com/dynatrace-oss/dynatrace-metric-utils-go v0.3.0/go.mod h1:qw0E9EJ0PnSlhWawDNuqE0zhc1hqOBUCFIAj3dd9DNw= +github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q= +github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw= +github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= +github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc= +github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= +github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= +github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= +github.com/edsrzf/mmap-go v1.1.0/go.mod h1:19H/e8pUPLicwkyNgOykDXkJ9F0MHE+Z52B8EIth78Q= +github.com/elastic/go-elasticsearch/v6 v6.8.5/go.mod h1:UwaDJsD3rWLM5rKNFzv9hgox93HoX8utj1kxD9aFUcI= +github.com/elastic/go-elasticsearch/v7 v7.17.1 h1:49mHcHx7lpCL8cW1aioEwSEVKQF3s+Igi4Ye/QTWwmk= +github.com/elastic/go-elasticsearch/v7 v7.17.1/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4= +github.com/elastic/go-licenser v0.3.1 h1:RmRukU/JUmts+rpexAw0Fvt2ly7VVu6mw8z4HrEzObU= +github.com/elastic/go-licenser v0.3.1/go.mod h1:D8eNQk70FOCVBl3smCGQt/lv7meBeQno2eI1S5apiHQ= +github.com/elastic/go-structform v0.0.9 h1:HpcS7xljL4kSyUfDJ8cXTJC6rU5ChL1wYb6cx3HLD+o= +github.com/elastic/go-structform v0.0.9/go.mod h1:CZWf9aIRYY5SuKSmOhtXScE5uQiLZNqAFnwKR4OrIM4= +github.com/elastic/go-sysinfo v1.1.1 h1:ZVlaLDyhVkDfjwPGU55CQRCRolNpc7P0BbyhhQZQmMI= +github.com/elastic/go-sysinfo v1.1.1/go.mod h1:i1ZYdU10oLNfRzq4vq62BEwD2fH8KaWh6eh0ikPT9F0= +github.com/elastic/go-windows v1.0.0 h1:qLURgZFkkrYyTTkvYpsZIgf83AUsdIHfvlJaqaZ7aSY= +github.com/elastic/go-windows v1.0.0/go.mod h1:TsU0Nrp7/y3+VwE82FoZF8gC/XFg/Elz6CcloAxnPgU= +github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.8/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.1 h1:cgDRLG7bs59Zd+apAWuzLQL95obVYAymNJek76W3mgw= +github.com/envoyproxy/go-control-plane v0.10.1/go.mod h1:AY7fTTXNdv/aJ2O5jwpxAPOWUZ7hQAEvzN5Pf27BkQQ= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.6.2/go.mod h1:2t7qjJNvHPx8IjnBOzl9E9/baC+qXE/TeeyBRzgJDws= +github.com/envoyproxy/protoc-gen-validate v0.6.6 h1:BApABShi05CepE340unZKC07YxY/I8KgnWPICc3U5yM= +github.com/envoyproxy/protoc-gen-validate v0.6.6/go.mod h1:dyJXwwfPK2VSqiB9Klm1J6romD608Ba7Hij42vrOBCo= +github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= +github.com/esimonov/ifshort v1.0.1/go.mod h1:yZqNJUrNn20K8Q9n2CrjTKYyVEmX209Hgu+M1LBpeZE= +github.com/euank/go-kmsg-parser v2.0.0+incompatible h1:cHD53+PLQuuQyLZeriD1V/esuG4MuU0Pjs5y6iknohY= +github.com/euank/go-kmsg-parser v2.0.0+incompatible/go.mod h1:MhmAMZ8V4CYH4ybgdRwPr2TU5ThnS43puaKEMpja1uw= +github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= +github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= +github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a h1:yDWHCSQ40h88yih2JAcL6Ls/kVkSE8GFACTGVnMPruw= +github.com/facebookgo/clock v0.0.0-20150410010913-600d898af40a/go.mod h1:7Ga40egUymuWXxAe151lTNnCv97MddSOVsjpPPkityA= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= +github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c/go.mod h1:Yg+htXGokKKdzcwhuNDwVvN+uBxDGXJ7G/VN1d8fa64= +github.com/facebookgo/limitgroup v0.0.0-20150612190941-6abd8d71ec01 h1:IeaD1VDVBPlx3viJT9Md8if8IxxJnO+x0JCGb054heg= +github.com/facebookgo/limitgroup v0.0.0-20150612190941-6abd8d71ec01/go.mod h1:ypD5nozFk9vcGw1ATYefw6jHe/jZP++Z15/+VTMcWhc= +github.com/facebookgo/muster v0.0.0-20150708232844-fd3d7953fd52 h1:a4DFiKFJiDRGFD1qIcqGLX/WlUMD9dyLSLDt+9QZgt8= +github.com/facebookgo/muster v0.0.0-20150708232844-fd3d7953fd52/go.mod h1:yIquW87NGRw1FU5p5lEkpnt/QxoH5uPAOUlOVkAUuMg= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= +github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= +github.com/facebookgo/stackerr v0.0.0-20150612192056-c2fcf88613f4 h1:fP04zlkPjAGpsduG7xN3rRkxjAqkJaIQnnkNYYw/pAk= +github.com/facebookgo/stackerr v0.0.0-20150612192056-c2fcf88613f4/go.mod h1:SBHk9aNQtiw4R4bEuzHjVmZikkUKCnO1v3lPQ21HZGk= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= +github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4/go.mod h1:5tD+neXqOorC30/tWg0LCSkrqj/AR6gu8yY8/fpw1q0= +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/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4= +github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90/go.mod h1:R/bRT+9gY/C5z7JzPU0zXsXHKM4/ayA+zqcVNZzPa1k= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= +github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= +github.com/frankban/quicktest v1.4.0/go.mod h1:36zfPVQyHxymz4cH7wlDmVwDrJuljRB60qkgn7rorfQ= +github.com/frankban/quicktest v1.7.3/go.mod h1:V1d2J5pfxYH6EjBAgSK7YNXcXlTWxUHdE1sVDXkjnig= +github.com/frankban/quicktest v1.10.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= +github.com/frankban/quicktest v1.11.0/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= +github.com/frankban/quicktest v1.11.2/go.mod h1:K+q6oSqb0W0Ininfk863uOk1lMy69l/P6txr3mVT54s= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= +github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= +github.com/frankban/quicktest v1.14.2 h1:SPb1KFFmM+ybpEjPUhCCkZOM5xlovT5UbrMvWnXyBns= +github.com/frankban/quicktest v1.14.2/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUorkibMOrVTHZps= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/fzipp/gocyclo v0.3.1/go.mod h1:DJHO6AUmbdqj2ET4Z9iArSuwWgYDRryYt2wASxc7x3E= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/garyburd/redigo v1.6.3/go.mod h1:rTb6epsqigu3kYKBnaF028A7Tf/Aw5s0cqA47doKKqw= +github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= +github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= +github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/getsentry/sentry-go v0.13.0 h1:20dgTiUSfxRB/EhMPtxcL9ZEbM1ZdR+W/7f7NWD+xWo= +github.com/getsentry/sentry-go v0.13.0/go.mod h1:EOsfu5ZdvKPfeHYV6pTVQnsjfp30+XA7//UooKNumH0= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gin-gonic/gin v1.5.0/go.mod h1:Nd6IXA8m5kNZdNEHMBd93KT+mdY3+bewLgRvmCsR2Do= +github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= +github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/glycerine/go-unsnap-stream v0.0.0-20180323001048-9f0cb55181dd/go.mod h1:/20jfyN9Y5QPEAprSgKAUr+glWDY39ZiUEAYOEv5dsE= +github.com/glycerine/goconvey v0.0.0-20190410193231-58a59202ab31/go.mod h1:Ogl1Tioa0aV7gstGFO7KhffUsb9M4ydbEbbxpcEDc24= +github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= +github.com/go-chi/chi v1.5.0/go.mod h1:REp24E+25iKvxgeTfHmdUoL5x15kBiDBlnIl5bCwe2k= +github.com/go-chi/chi v4.0.0+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi/v5 v5.0.0/go.mod h1:BBug9lr0cqtdAhsu6R4AAdvufI0/XBzAQSsUqJpoZOs= +github.com/go-critic/go-critic v0.5.4/go.mod h1:cjB4YGw+n/+X8gREApej7150Uyy1Tg8If6F2XOAUXNE= +github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= +github.com/go-kit/kit v0.11.0 h1:IGmIEl7aHTYh6E2HlT+ptILBotjo4xl8PMDl852etiI= +github.com/go-kit/kit v0.11.0/go.mod h1:73/6Ixaufkvb5Osvkls8C79vuQ49Ba1rUEUYNSf+FUw= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0 h1:7i2K3eKTos3Vc0enKCfnVcgHh2olr/MyfboYq7cAcFw= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= +github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= +github.com/go-ldap/ldap/v3 v3.1.3/go.mod h1:3rbOH3jRS2u6jg2rJnKAMLE/xQyCKIveG2Sa/Cohzb8= +github.com/go-ldap/ldap/v3 v3.1.10/go.mod h1:5Zun81jBTabRaI8lzN7E1JjyEl1g6zI6u9pd8luAK4Q= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= +github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= +github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= +github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= +github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= +github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= +github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= +github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= +github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= +github.com/go-openapi/analysis v0.20.0/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= +github.com/go-openapi/analysis v0.20.1/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= +github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= +github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= +github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.4/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= +github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.0/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.1/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/errors v0.20.2/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= +github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= +github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= +github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= +github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk= +github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= +github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= +github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= +github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= +github.com/go-openapi/loads v0.20.2/go.mod h1:hTVUotJ+UonAMMZsvakEgmWKgtulweO9vYP2bQYKA/o= +github.com/go-openapi/loads v0.21.0/go.mod h1:rHYve9nZrQ4CJhyeIIFJINGCg1tQpx2yJrrNo8sf1ws= +github.com/go-openapi/loads v0.21.1/go.mod h1:/DtAMXXneXFjbQMGEtbamCZb+4x7eGwkvZCvBmwUG+g= +github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= +github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= +github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= +github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= +github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= +github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= +github.com/go-openapi/runtime v0.19.28/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M= +github.com/go-openapi/runtime v0.19.29/go.mod h1:BvrQtn6iVb2QmiVXRsFAm6ZCAZBpbVKFfN6QWCp582M= +github.com/go-openapi/runtime v0.22.0/go.mod h1:aQg+kaIQEn+A2CRSY1TxbM8+sT9g2V3aLc1FbIAnbbs= +github.com/go-openapi/runtime v0.23.1/go.mod h1:AKurw9fNre+h3ELZfk6ILsfvPN+bvvlaU/M9q/r9hpk= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= +github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= +github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= +github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= +github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= +github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= +github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= +github.com/go-openapi/spec v0.20.2/go.mod h1:RW6Xcbs6LOyWLU/mXGdzn2Qc+3aj+ASfI7rvSZh1Vls= +github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg= +github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= +github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= +github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= +github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= +github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= +github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= +github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= +github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= +github.com/go-openapi/strfmt v0.20.1/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= +github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= +github.com/go-openapi/strfmt v0.21.0/go.mod h1:ZRQ409bWMj+SOgXofQAGTIo2Ebu72Gs+WaRADcS5iNg= +github.com/go-openapi/strfmt v0.21.1/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/strfmt v0.21.2/go.mod h1:I/XVKeLc5+MM5oPNN7P6urMOpuLXEcNrCX/rPGuWb0k= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= +github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= +github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= +github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= +github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= +github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= +github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4= +github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= +github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= +github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= +github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= +github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZIVCbJBpTUoY0= +github.com/go-openapi/validate v0.20.3/go.mod h1:goDdqVGiigM3jChcrYJxD2joalke3ZXeftD16byIjA4= +github.com/go-openapi/validate v0.21.0/go.mod h1:rjnrwK57VJ7A8xqfpAOEKRH8yQSGUriMu5/zuPSQ1hg= +github.com/go-pg/pg/v10 v10.0.0/go.mod h1:XHU1AkQW534GFuUdSiQ46+Xw6Ah+9+b8DlT4YwhiXL8= +github.com/go-pg/zerochecker v0.2.0/go.mod h1:NJZ4wKL0NmTtz0GKCoJ8kym6Xn/EQzXRl2OnAe7MmDo= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.16.0/go.mod h1:1AnU7NaIRDWWzGEKwgtJRd2xk99HeFyHw3yid4rvQIY= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= +github.com/go-redis/redis v6.15.9+incompatible/go.mod h1:NAIEuMOZ/fxfXJIrKDQDz8wamY7mA7PouImQ2Jvg6kA= +github.com/go-redis/redis/v7 v7.1.0/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg= +github.com/go-redis/redis/v7 v7.4.1 h1:PASvf36gyUpr2zdOUS/9Zqc80GbM+9BDyiJSJDDOrTI= +github.com/go-redis/redis/v7 v7.4.1/go.mod h1:JDNMw23GTyLNC4GZu9njt15ctBQVn7xjRfnwdHj/Dcg= +github.com/go-redis/redis/v8 v8.0.0/go.mod h1:isLoQT/NFSP7V67lyvM9GmdvLdyZ7pEhsXvvyQtnQTo= +github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48 h1:JVrqSeQfdhYRFk24TvhTZWU0q8lfCojxZQFi3Ou7+uY= +github.com/go-resty/resty/v2 v2.1.1-0.20191201195748-d7b97669fe48/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= +github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= +github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= +github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= +github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= +github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= +github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= +github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= +github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= +github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-toolsmith/typep v1.0.2/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/go-xmlfmt/xmlfmt v0.0.0-20191208150333-d5b6f63a941b/go.mod h1:aUCEOzzezBEjDBbFBoSiya/gduyIiWYRP6CnSFIV8AM= +github.com/go-zookeeper/zk v1.0.2 h1:4mx0EYENAdX/B/rbunjlt5+4RTA/a9SMHBRuSKdGxPM= +github.com/go-zookeeper/zk v1.0.2/go.mod h1:nOB03cncLtlp4t+UAkGSV+9beXP/akpekBwL+UX1Qcw= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= +github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= +github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= +github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= +github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= +github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= +github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= +github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= +github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= +github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gocql/gocql v0.0.0-20200228163523-cd4b606dd2fb/go.mod h1:DL0ekTmBSTdlNF25Orwt/JMzqIq3EJ4MVa/J/uK64OY= +github.com/gocql/gocql v0.0.0-20211222173705-d73e6b1002a7/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= +github.com/gocql/gocql v0.0.0-20220224095938-0eacd3183625/go.mod h1:3gM2c4D3AnkISwBxGnMMsS8Oy4y2lhbPRsH4xnJrHG8= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gofiber/fiber/v2 v2.11.0/go.mod h1:oZTLWqYnqpMMuF922SjGbsYZsdpE1MCfh416HNdweIM= +github.com/gofrs/flock v0.8.0/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw= +github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.3.1/go.mod h1:d+q1s/xVJxZGKWwC/6UfPIF33J+G1Tq4GYv9Y+Tg/EU= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= +github.com/gogo/googleapis v1.4.1/go.mod h1:2lpHqI5OcWCtVElxXnPt+s8oJvMpySlOyM6xDCrzib4= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0/go.mod h1:E/TSTwGwJL78qG/PmXZO1EjYhfJinVAhrmmHX6Z8B9k= +github.com/golang/geo v0.0.0-20190916061304-5b978397cfec/go.mod h1:QZ0nwyI2jOfgRAoBvP+ab5aRr7c9x7lhGEJrKvBwjWI= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/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/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +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= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= +github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/golangci-lint v1.38.0/go.mod h1:Knp/sd5ATrVp7EOzWzwIIFH+c8hUfpW+oOQb8NvdZDo= +github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/revgrep v0.0.0-20210208091834-cd28932614b5/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/gomodule/redigo v1.7.0/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= +github.com/google/addlicense v0.0.0-20190510175307-22550fa7c1b0/go.mod h1:QtPG26W17m+OIQgE6gQ24gC1M6pUaMBAbFrTIDtwG/E= +github.com/google/addlicense v0.0.0-20200906110928-a0294312aa76/go.mod h1:EMjYTRimagHs1FwlIqKyX3wAM0u3rA+McvlIIWmSamA= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= +github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= +github.com/google/cadvisor v0.44.0 h1:523mBK94XHKAsU1TIQl/tYoPyYpWQdalf2CQ8Gv2Xek= +github.com/google/cadvisor v0.44.0/go.mod h1:GQ9KQfz0iNHQk3D6ftzJWK4TXabfIgM10Oy3FkR+Gzg= +github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= +github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= +github.com/google/gofuzz v0.0.0-20161122191042-44d81051d367/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210323184331-8eee2492667d/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210423192551-a2663126120b/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210715191844-86eeefc3e471/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20220218203455-0368bd9e19a7/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= +github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0eJc8R6ouapiM= +github.com/googleapis/gax-go/v2 v2.2.0 h1:s7jOdKSaksJVOxE0Y/S32otcfiP+UQ0cL8/GTKaONwE= +github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= +github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= +github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3 h1:eHv/jVY/JNop1xg2J9cBb4EzyMpWZoNCP1BslSAIkOI= +github.com/googleinterns/cloud-operations-api-mock v0.0.0-20200709193332-a1e58c29bdd3/go.mod h1:h/KNeRx7oYU4SpA4SoY7W2/NxDKEEVuwA6j9A27L4OI= +github.com/gookit/color v1.3.6/go.mod h1:R3ogXq2B9rTbXoSHJ1HyUVAZ3poOJHpd9nQmyGZsfvQ= +github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= +github.com/gophercloud/gophercloud v0.16.0/go.mod h1:wRtmUelyIIv3CSSDI47aUwbs075O6i+LY+pXsKCBsb4= +github.com/gophercloud/gophercloud v0.24.0 h1:jDsIMGJ1KZpAjYfQgGI2coNQj5Q83oPzuiGJRFWgMzw= +github.com/gophercloud/gophercloud v0.24.0/go.mod h1:Q8fZtyi5zZxPS/j9aj3sSxtvj41AdQMDwyo1myduD5c= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gordonklaus/ineffassign v0.0.0-20210225214923-2e10b2664254/go.mod h1:M9mZEtGIsR1oDaZagNPNG9iq9n2HrhZ17dsXk73V3Lw= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= +github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= +github.com/gorilla/mux v1.5.0/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.2.1/go.mod h1:dk2InVEVJ0sfLlnXv9EAgkf6ecYs/i80K/zI+bUmuGM= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.1.0/go.mod h1:dMhHRU9KTiDcuLGdy87/2gTR8WruwYZrKdRq9m1O6uw= +github.com/gostaticanalysis/analysisutil v0.4.1/go.mod h1:18U/DLpRgIUd459wGxVHE0fRgmo1UgHDcbw7F5idXu0= +github.com/gostaticanalysis/comment v1.3.0/go.mod h1:xMicKDx7XRXYdVwY9f9wQpDJVnqWxw9wCauCMKp+IBI= +github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= +github.com/gostaticanalysis/forcetypeassert v0.0.0-20200621232751-01d4955beaa5/go.mod h1:qZEedyP/sY1lTGV1uJ3VhWZ2mqag3IkWsDHVbplHXak= +github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/grafana/regexp v0.0.0-20220304095617-2e8d9baf4ac2 h1:uirlL/j72L93RhV4+mkWhjv0cov2I0MIgPOG9rMDr1k= +github.com/grafana/regexp v0.0.0-20220304095617-2e8d9baf4ac2/go.mod h1:M5qHK+eWfAv8VR/265dIuEpL3fNfeC21tXXp9itM24A= +github.com/graph-gophers/graphql-go v1.3.0/go.mod h1:9CQHMSxwO4MprSdzoIEobiHpoLtHm77vfxsvsIN5Vuc= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grobie/gomemcache v0.0.0-20180201122607-1f779c573665 h1:LONJvPBBd9wBmzSUmNHI7XpLE2qQ5tzUimeBadiVDuA= +github.com/grobie/gomemcache v0.0.0-20180201122607-1f779c573665/go.mod h1:L69/dBlPQlWkcnU76WgcppK5e4rrxzQdi6LhLnK/ytA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.14.5/go.mod h1:UJ0EZAp832vCd54Wev9N1BMKEyvcZ5+IM0AwDrnlkEc= +github.com/grpc-ecosystem/grpc-gateway v1.15.2/go.mod h1:vO11I9oWA+KsxmfFQPhLnnIb1VDE24M+pdxZFiuZcA8= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/hashicorp/consul/api v1.0.0/go.mod h1:mbFwfRxOTDHZpT3iUsMAFcLNoVm6Xbe1xZ6KiSm8FY0= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= +github.com/hashicorp/consul/api v1.8.1/go.mod h1:sDjTOq0yUyv5G4h+BqSea7Fn6BU+XbolEz1952UB+mk= +github.com/hashicorp/consul/api v1.11.0/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= +github.com/hashicorp/consul/api v1.12.0 h1:k3y1FYv6nuKyNTqj6w9gXOx5r5CfLj/k/euUeBXj1OY= +github.com/hashicorp/consul/api v1.12.0/go.mod h1:6pVBMo0ebnYdt2S3H87XhekM/HHrUoTD2XXb/VrZVy0= +github.com/hashicorp/consul/internal v0.1.0/go.mod h1:zi9bMZYbiPHyAjgBWo7kCUcy5l2NrTdrkVupCc7Oo6c= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/consul/sdk v0.7.0/go.mod h1:fY08Y9z5SvJqevyZNy6WWPXiG3KwBPAvlcdx16zZ0fM= +github.com/hashicorp/consul/sdk v0.8.0 h1:OJtKBtEjboEZvG6AOUdh4Z1Zbyu0WcxQ0qatRrZHTVU= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= +github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= +github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.12.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.15.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.16.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.0.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.1.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.2.0 h1:La19f8d7WIlm4ogzNHB0JGqs5AUDAZ2UfCY4sJXcJdM= +github.com/hashicorp/go-hclog v1.2.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.2.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= +github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-kms-wrapping/entropy v0.1.0/go.mod h1:d1g9WGtAunDNpek8jUIEJnBlbgKS1N2Q61QkHiZyR1g= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= +github.com/hashicorp/go-plugin v1.4.0/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-plugin v1.4.2/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= +github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= +github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1/go.mod h1:QmrqtbKuxxSWTN3ETMPuB+VtEiBJ/A9XhoYGv8E1uD8= +github.com/hashicorp/go-secure-stdlib/password v0.1.1/go.mod h1:9hH302QllNwu1o2TGYtSk8I8kTAN0ca1EHpwhm5Mmzo= +github.com/hashicorp/go-secure-stdlib/strutil v0.1.1/go.mod h1:gKOamz3EwoIoJq7mlMIRBpVTAUn8qPCrEclOKKWhD3U= +github.com/hashicorp/go-secure-stdlib/tlsutil v0.1.1/go.mod h1:l8slYwnJA26yBz+ErHpp2IRCLr0vuOMGBORIz4rRiAs= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-sockaddr v1.0.2 h1:ztczhD1jLxIRjVejw8gFomI1BQZOe2WoVOu0SyteCQc= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= +github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= +github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.1.6/go.mod h1:5VDNHjqFMgEcclnwmkCnC99IPwxBmIsxwY8qn+Nl0H4= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/memberlist v0.2.4/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/memberlist v0.3.0 h1:8+567mCcFDnS5ADl7lrpxPMWiFCElyUEeW0gtj34fMA= +github.com/hashicorp/memberlist v0.3.0/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/serf v0.8.6/go.mod h1:P/AVgr4UHsUYqVHG1y9eFhz8S35pqhGhLZaDpfGKIMo= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/hashicorp/serf v0.9.6 h1:uuEX1kLR6aoda1TBttmJQKDLZE1Ob7KN0NPdE7EtCDc= +github.com/hashicorp/serf v0.9.6/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpTwn9UV4= +github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= +github.com/hashicorp/vault/api v1.1.0/go.mod h1:R3Umvhlxi2TN7Ex2hzOowyeNb+SfbVWI973N+ctaFMk= +github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= +github.com/hashicorp/vault/sdk v0.1.14-0.20200519221838-e0cfd64bc267/go.mod h1:WX57W2PwkrOPQ6rVQk+dy5/htHIaB4aBM70EwKThu10= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20190923154419-df201c70410d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hetznercloud/hcloud-go v1.24.0/go.mod h1:3YmyK8yaZZ48syie6xpm3dt26rtB6s65AisBHylXYFA= +github.com/hetznercloud/hcloud-go v1.33.1 h1:W1HdO2bRLTKU4WsyqAasDSpt54fYO4WNckWYfH5AuCQ= +github.com/hetznercloud/hcloud-go v1.33.1/go.mod h1:XX/TQub3ge0yWR2yHWmnDVIrB+MQbda1pHxkUmDlUME= +github.com/honeycombio/libhoney-go v1.15.8 h1:TECEltZ48K6J4NG1JVYqmi0vCJNnHYooFor83fgKesA= +github.com/honeycombio/libhoney-go v1.15.8/go.mod h1:+tnL2etFnJmVx30yqmoUkVyQjp7uRJw0a2QGu48lSyY= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/influxdata/flux v0.65.1/go.mod h1:J754/zds0vvpfwuq7Gc2wRdVwEodfpCFM7mYlOw2LqY= +github.com/influxdata/go-syslog/v3 v3.0.1-0.20210608084020-ac565dc76ba6 h1:s9ZL6ZhFF8y6ebnm1FLvobkzoIu5xwDQUcRPk/IEhpM= +github.com/influxdata/go-syslog/v3 v3.0.1-0.20210608084020-ac565dc76ba6/go.mod h1:aXdIdfn2OcGnMhOTojXmwZqXKgC3MU5riiNvzwwG9OY= +github.com/influxdata/influxdb v1.8.4/go.mod h1:JugdFhsvvI8gadxOI6noqNeeBHvWNTbfYGtiAn+2jhI= +github.com/influxdata/influxdb-observability/common v0.2.17 h1:nl1BpGcs00mctFo4FzuB3jZKIoCEEuNr9SNBvmbijss= +github.com/influxdata/influxdb-observability/common v0.2.17/go.mod h1:fuVPmy5B3kp9xKiUhqAtsAd9s+7CXafOCdR/AkxVG/4= +github.com/influxdata/influxdb-observability/influx2otel v0.2.17 h1:kiWPPbAyzUTatUb2QCZPThY6yvwRZyvYU+WSDoWjREo= +github.com/influxdata/influxdb-observability/influx2otel v0.2.17/go.mod h1:JmAH/hVWjdvSEd9EjtYeX8K8Z4OOjPrjEI9SoHjMuNo= +github.com/influxdata/influxdb-observability/otel2influx v0.2.17 h1:7EspR0ClC+p7lFOajV+QmzgB6siO/qS6RxFNVfhQptY= +github.com/influxdata/influxdb-observability/otel2influx v0.2.17/go.mod h1:Qhw4L2S4ho6gTMIZHRSzxdKMJi4QsVn2J+NQp4f41Qw= +github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= +github.com/influxdata/influxdb1-client v0.0.0-20200827194710-b269163b24ab/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/line-protocol v0.0.0-20180522152040-32c6aa80de5e/go.mod h1:4kt73NQhadE3daL3WhR5EJ/J2ocX0PZzwxQ0gXJ7oFE= +github.com/influxdata/line-protocol-corpus v0.0.0-20210519164801-ca6fa5da0184/go.mod h1:03nmhxzZ7Xk2pdG+lmMd7mHDfeVOYFyhOgwO61qWU98= +github.com/influxdata/line-protocol-corpus v0.0.0-20210922080147-aa28ccfb8937 h1:MHJNQ+p99hFATQm6ORoLmpUCF7ovjwEFshs/NHzAbig= +github.com/influxdata/line-protocol-corpus v0.0.0-20210922080147-aa28ccfb8937/go.mod h1:BKR9c0uHSmRgM/se9JhFHtTT7JTO67X23MtKMHtZcpo= +github.com/influxdata/line-protocol/v2 v2.0.0-20210312151457-c52fdecb625a/go.mod h1:6+9Xt5Sq1rWx+glMgxhcg2c0DUaehK+5TDcPZ76GypY= +github.com/influxdata/line-protocol/v2 v2.1.0/go.mod h1:QKw43hdUBg3GTk2iC3iyCxksNj7PX9aUSeYOYE/ceHY= +github.com/influxdata/line-protocol/v2 v2.2.1 h1:EAPkqJ9Km4uAxtMRgUubJyqAr6zgWM0dznKMLRauQRE= +github.com/influxdata/line-protocol/v2 v2.2.1/go.mod h1:DmB3Cnh+3oxmG6LOBIxce4oaL4CPj3OmMPgvauXh+tM= +github.com/influxdata/promql/v2 v2.12.0/go.mod h1:fxOPu+DY0bqCTCECchSRtWfc+0X19ybifQhZoQNF5D8= +github.com/influxdata/roaring v0.4.13-0.20180809181101-fc520f41fab6/go.mod h1:bSgUQ7q5ZLSO+bKBGqJiCBGAl+9DxyW63zLTujjUlOE= +github.com/influxdata/tdigest v0.0.0-20181121200506-bf2b5ad3c0a9/go.mod h1:Js0mqiSBE6Ffsg94weZZ2c+v/ciT8QRHFOap7EKDrR0= +github.com/influxdata/usage-client v0.0.0-20160829180054-6d3895376368/go.mod h1:Wbbw6tYNvwa5dlB6304Sd+82Z3f7PmVZHVKU637d4po= +github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= +github.com/jackc/chunkreader v1.0.0/go.mod h1:RT6O25fNZIuasFJRyZ4R/Y2BbhasbmZXF9QQ7T3kePo= +github.com/jackc/chunkreader/v2 v2.0.0/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8= +github.com/jackc/chunkreader/v2 v2.0.1/go.mod h1:odVSm741yZoC3dpHEUXIqA9tQRhFrgOHwnPIn9lDKlk= +github.com/jackc/pgconn v0.0.0-20190420214824-7e0022ef6ba3/go.mod h1:jkELnwuX+w9qN5YIfX0fl88Ehu4XC3keFuOJJk9pcnA= +github.com/jackc/pgconn v0.0.0-20190824142844-760dd75542eb/go.mod h1:lLjNuW/+OfW9/pnVKPazfWOgNfH2aPem8YQ7ilXGvJE= +github.com/jackc/pgconn v0.0.0-20190831204454-2fabfa3c18b7/go.mod h1:ZJKsE/KZfsUgOEh9hBm+xYTstcNHg7UPMVJqRfQxq4s= +github.com/jackc/pgconn v1.4.0/go.mod h1:Y2O3ZDF0q4mMacyWV3AstPJpeHXWGEetiFttmq5lahk= +github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= +github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI= +github.com/jackc/pgconn v1.6.4/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78= +github.com/jackc/pgconn v1.8.0/go.mod h1:1C2Pb36bGIP9QHGBYCjnyhqu7Rv3sGshaQUvmfGIB/o= +github.com/jackc/pgconn v1.9.0/go.mod h1:YctiPyvzfU11JFxoXokUOOKQXQmDMoJL9vJzHH8/2JY= +github.com/jackc/pgconn v1.9.1-0.20210724152538-d89c8390a530/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.10.1/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgconn v1.11.0 h1:HiHArx4yFbwl91X3qqIHtUFoiIfLNJXCQRsnzkiwwaQ= +github.com/jackc/pgconn v1.11.0/go.mod h1:4z2w8XhRbP1hYxkpTuBjTS3ne3J48K83+u0zoyvg2pI= +github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE= +github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8= +github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2/go.mod h1:fGZlG77KXmcq05nJLRkk0+p82V8B8Dw8KN2/V9c/OAE= +github.com/jackc/pgmock v0.0.0-20201204152224-4fe30f7445fd/go.mod h1:hrBW0Enj2AZTNpt/7Y5rr2xe/9Mn757Wtb2xeBzPv2c= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65 h1:DadwsjnMwFjfWc9y5Wi/+Zz7xoE5ALHsRQlOctkOiHc= +github.com/jackc/pgmock v0.0.0-20210724152146-4ad1a8207f65/go.mod h1:5R2h2EEX+qri8jOWMbJCtaPWkrrNc7OHwsp2TCqp7ak= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgproto3 v1.1.0/go.mod h1:eR5FA3leWg7p9aeAqi37XOTgTIbkABlvcPB3E5rlc78= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190420180111-c116219b62db/go.mod h1:bhq50y+xrl9n5mRYyCBFKkpRVTLYJVWeCc+mEAI3yXA= +github.com/jackc/pgproto3/v2 v2.0.0-alpha1.0.20190609003834-432c2951c711/go.mod h1:uH0AWtUmuShn0bcesswc4aBTWGvw0cAxIJp+6OB//Wg= +github.com/jackc/pgproto3/v2 v2.0.0-rc3/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.0-rc3.0.20190831210041-4c03ce451f29/go.mod h1:ryONWYqW6dqSg1Lw6vXNMXoBJhpzvWKnT95C46ckYeM= +github.com/jackc/pgproto3/v2 v2.0.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.0.2/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.0.6/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.1.1/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgproto3/v2 v2.2.0 h1:r7JypeP2D3onoQTCxWdTpCtJ4D+qpKr0TxvoyMhZ5ns= +github.com/jackc/pgproto3/v2 v2.2.0/go.mod h1:WfJCnwN3HIg9Ish/j3sgWXnAfK8A9Y0bwXYU5xKaEdA= +github.com/jackc/pgservicefile v0.0.0-20200307190119-3430c5407db8/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg= +github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b/go.mod h1:vsD4gTJCa9TptPL8sPkXrLZ+hDuNrZCnj29CQpr4X1E= +github.com/jackc/pgtype v0.0.0-20190421001408-4ed0de4755e0/go.mod h1:hdSHsc1V01CGwFsrv11mJRHWJ6aifDLfdV3aVjFF0zg= +github.com/jackc/pgtype v0.0.0-20190824184912-ab885b375b90/go.mod h1:KcahbBH1nCMSo2DXpzsoWOAfFkdEtEJpPbVLq8eE+mc= +github.com/jackc/pgtype v0.0.0-20190828014616-a8802b16cc59/go.mod h1:MWlu30kVJrUS8lot6TQqcg7mtthZ9T0EoIBFiJcmcyw= +github.com/jackc/pgtype v1.2.0/go.mod h1:5m2OfMh1wTK7x+Fk952IDmI4nw3nPrvtQdM0ZT4WpC0= +github.com/jackc/pgtype v1.3.1-0.20200510190516-8cd94a14c75a/go.mod h1:vaogEUkALtxZMCH411K+tKzNpwzCKU+AnPzBKZ+I+Po= +github.com/jackc/pgtype v1.3.1-0.20200606141011-f6355165a91c/go.mod h1:cvk9Bgu/VzJ9/lxTO5R5sf80p0DiucVtN7ZxvaC4GmQ= +github.com/jackc/pgtype v1.4.2/go.mod h1:JCULISAZBFGrHaOXIIFiyfzW5VY0GRitRr8NeJsrdig= +github.com/jackc/pgtype v1.8.1-0.20210724151600-32e20a603178/go.mod h1:C516IlIV9NKqfsMCXTdChteoXmwgUceqaLfjg2e3NlM= +github.com/jackc/pgtype v1.9.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= +github.com/jackc/pgtype v1.10.0 h1:ILnBWrRMSXGczYvmkYD6PsYyVFUNLTnIUJHHDLmqk38= +github.com/jackc/pgtype v1.10.0/go.mod h1:LUMuVrfsFfdKGLw+AFFVv6KtHOFMwRgDDzBt76IqCA4= +github.com/jackc/pgx/v4 v4.0.0-20190420224344-cc3461e65d96/go.mod h1:mdxmSJJuR08CZQyj1PVQBHy9XOp5p8/SHH6a0psbY9Y= +github.com/jackc/pgx/v4 v4.0.0-20190421002000-1b8f0016e912/go.mod h1:no/Y67Jkk/9WuGR0JG/JseM9irFbnEPbuWV2EELPNuM= +github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQnOEnf1dqHGpw7JmHqHc1NxDoalibchSk9/RWuDc= +github.com/jackc/pgx/v4 v4.5.0/go.mod h1:EpAKPLdnTorwmPUUsqrPxy5fphV18j9q3wrfRXgo+kA= +github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o= +github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg= +github.com/jackc/pgx/v4 v4.8.1/go.mod h1:4HOLxrl8wToZJReD04/yB20GDwf4KBYETvlHciCnwW0= +github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs= +github.com/jackc/pgx/v4 v4.14.0/go.mod h1:jT3ibf/A0ZVCp89rtCIN0zCJxcE74ypROmHEZYsG/j8= +github.com/jackc/pgx/v4 v4.15.0 h1:B7dTkXsdILD3MF987WGGCcg+tvLW6bZJdEcqVFeU//w= +github.com/jackc/pgx/v4 v4.15.0/go.mod h1:D/zyOyXiaM1TmVWnOM18p0xdDtdakRBa0RsVGI3U3bw= +github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.2.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jackc/puddle v1.2.1/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk= +github.com/jaegertracing/jaeger v1.15.1/go.mod h1:LUWPSnzNPGRubM8pk0inANGitpiMOOxihXx0+53llXI= +github.com/jaegertracing/jaeger v1.22.0/go.mod h1:WnwW68MjJEViSLRQhe0nkIsBDaF3CzfFd8wJcpJv24k= +github.com/jaegertracing/jaeger v1.23.0/go.mod h1:gB6Qc+Kjd/IX1G82oGTArbHI3ZRO//iUkaMW+gzL9uw= +github.com/jaegertracing/jaeger v1.24.0/go.mod h1:mqdtFDA447va5j0UewDaAWyNlGreGQyhGxXVhbF58gQ= +github.com/jaegertracing/jaeger v1.26.0/go.mod h1:SwHsl1PLZVAdkQTPrziQ+4xV9FxzJXRvTDW1YrUIWEA= +github.com/jaegertracing/jaeger v1.31.0/go.mod h1:KukZMhuamI3NVbzWmngcmXbcnxiB3WyaNf0nxio+sUw= +github.com/jaegertracing/jaeger v1.32.0 h1:aKtCeFMWsJ/TuNx+5mMscOCcGhnkG7ZSYx3zsCpDVAQ= +github.com/jaegertracing/jaeger v1.32.0/go.mod h1:2bCBxuy0Pdb+wGRL5YhjSyrp6Wpz1vvfL4hEYbLfrCc= +github.com/jcchavezs/porto v0.1.0 h1:Xmxxn25zQMmgE7/yHYmh19KcItG81hIwfbEEFnd6w/Q= +github.com/jcchavezs/porto v0.1.0/go.mod h1:fESH0gzDHiutHRdX2hv27ojnOVFco37hg1W6E9EZF4A= +github.com/jcmturner/aescts/v2 v2.0.0 h1:9YKLH6ey7H4eDBXW8khjYslgyqG2xZikXP0EQFKrle8= +github.com/jcmturner/aescts/v2 v2.0.0/go.mod h1:AiaICIRyfYg35RUkr8yESTqvSy7csK90qZ5xfvvsoNs= +github.com/jcmturner/dnsutils/v2 v2.0.0 h1:lltnkeZGL0wILNvrNiVCR6Ro5PGU/SeBvVO/8c/iPbo= +github.com/jcmturner/dnsutils/v2 v2.0.0/go.mod h1:b0TnjGOvI/n42bZa+hmXL+kFJZsFT7G4t3HTlQ184QM= +github.com/jcmturner/gofork v0.0.0-20190328161633-dc7c13fece03/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8= +github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= +github.com/jcmturner/goidentity/v6 v6.0.1 h1:VKnZd2oEIMorCTsFBnJWbExfNN7yZr3EhJAxwOkZg6o= +github.com/jcmturner/goidentity/v6 v6.0.1/go.mod h1:X1YW3bgtvwAXju7V3LCIMpY0Gbxyjn/mY9zx4tFonSg= +github.com/jcmturner/gokrb5/v8 v8.4.2 h1:6ZIM6b/JJN0X8UM43ZOM6Z4SJzla+a/u7scXFJzodkA= +github.com/jcmturner/gokrb5/v8 v8.4.2/go.mod h1:sb+Xq/fTY5yktf/VxLsE3wlfPqQjp0aWNYyvBVK62bc= +github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY= +github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= +github.com/jgautheron/goconst v1.4.0/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= +github.com/jingyugao/rowserrcheck v0.0.0-20210130005344-c6a0c12dd98d/go.mod h1:/EZlaYCnEX24i7qdVhT9du5JrtFWYRQr67bVgR7JJC8= +github.com/jinzhu/gorm v1.9.1/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo= +github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= +github.com/jinzhu/now v1.1.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 h1:rp+c0RAYOWj8l6qbCUTSiRLG/iKnW3K3/QfPPuSsBt4= +github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901/go.mod h1:Z86h9688Y0wesXCyonoVr47MasHilkuLMqGhRZ4Hpak= +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= +github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= +github.com/json-iterator/go v0.0.0-20180612202835-f2b4162afba3/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jsternberg/zap-logfmt v1.0.0/go.mod h1:uvPs/4X51zdkcm5jXl5SYoN+4RK21K8mysFmDaM/h+o= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= +github.com/juju/errors v0.0.0-20181012004132-a4583d0a56ea h1:g2k+8WR7cHch4g0tBDhfiEvAp7fXxTNBiD1oC1Oxj3E= +github.com/juju/errors v0.0.0-20181012004132-a4583d0a56ea/go.mod h1:W54LbzXuIE0boCoNJfwqpmkKJ1O4TCTZMetAt6jGk7Q= +github.com/juju/loggo v0.0.0-20190526231331-6e530bcce5d8/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U= +github.com/juju/testing v0.0.0-20191001232224-ce9dec17d28b/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA= +github.com/julienschmidt/httprouter v1.1.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/julz/importas v0.0.0-20210226073942-60b4fa260dd0/go.mod h1:oSFU2R4XK/P7kNBrnL/FEQlDGN1/6WoxXEjSSXO0DV0= +github.com/jung-kurt/gofpdf v1.0.3-0.20190309125859-24315acbbda5/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/jwilder/encoding v0.0.0-20170811194829-b4e1701a28ef/go.mod h1:Ct9fl0F6iIOGgxJ5npU/IUOhOhqlVrGjyIZc8/MagT0= +github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= +github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= +github.com/karrick/godirwalk v1.16.1 h1:DynhcF+bztK8gooS0+NDJFrdNZjJ3gzVzC545UNA9iw= +github.com/karrick/godirwalk v1.16.1/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= +github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/errcheck v1.6.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.10.7/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.0/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.12/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.4/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.2/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.14.4/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.15.1 h1:y9FcTHGyrebwfP0ZZqFiaxTaiDnUrGkJkI+f583BL1A= +github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/crc32 v0.0.0-20161016154125-cb6bfca970f6/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/crc32 v1.2.0/go.mod h1:+ZoRqAPRLkC4NPOvfYeR5KNOrY6TD+/sAC3HXPZgDYg= +github.com/klauspost/pgzip v1.0.2-0.20170402124221-0bf5dcad4ada/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= +github.com/knadh/koanf v1.4.1 h1:Z0VGW/uo8NJmjd+L1Dc3S5frq6c62w5xQ9Yf4Mg3wFQ= +github.com/knadh/koanf v1.4.1/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= +github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b h1:iNjcivnc6lhbvJA3LD622NPrUponluJrBWPIwGG/3Bg= +github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +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.2.1/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/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= +github.com/kr/pty v1.1.8/go.mod h1:O1sed60cT9XZ5uDucP5qwvh+TE3NnUj51EiZO/lmSfw= +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/kulti/thelper v0.4.0/go.mod h1:vMu2Cizjy/grP+jmsvOFDx1kYP6+PD1lqg4Yu5exl2U= +github.com/kunwardeep/paralleltest v1.0.2/go.mod h1:ZPqNm1fVHPllh5LPVujzbVz1JN2GhLxSfY+oqUsvG30= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/kyoh86/exportloopref v0.1.8/go.mod h1:1tUcJeiioIs7VWe5gcOObrux3lb66+sBqGZrRkMwPgg= +github.com/labstack/echo v3.3.10+incompatible/go.mod h1:0INS7j/VjnFxD4E2wkz67b8cVwCLbBmJyDaka6Cmk1s= +github.com/labstack/echo/v4 v4.2.0/go.mod h1:AA49e0DZ8kk5jTOOCKNuPR6oTnBS0dYiM4FW1e6jwpg= +github.com/labstack/gommon v0.3.0/go.mod h1:MULnywXg0yavhxWKc+lOruYdAhDwPK9wf0OL7NoOu+k= +github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= +github.com/leesper/go_rng v0.0.0-20190531154944-a612b043e353 h1:X/79QL0b4YJVO5+OsPH9rF2u428CIrGL/jLmPsoOQQ4= +github.com/leodido/go-urn v1.1.0/go.mod h1:+cyI34gQWZcE1eQU7NVgKkkzdXDQHr1dBMtdAPozLkw= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= +github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165/go.mod h1:WZxr2/6a/Ar9bMDc2rN/LJrE/hF6bXE4LPyDSIxwAfg= +github.com/leoluk/perflib_exporter v0.1.0 h1:fXe/mDaf9jR+Zk8FjFlcCSksACuIj2VNN4GyKHmQqtA= +github.com/leoluk/perflib_exporter v0.1.0/go.mod h1:rpV0lYj7lemdTm31t7zpCqYqPnw7xs86f+BaaNBVYFM= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/lib/pq v1.9.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.2/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.5 h1:J+gdV2cUmX7ZqL2B0lFcW0m+egaHC2V3lpO8nWxyYiQ= +github.com/lib/pq v1.10.5/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= +github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= +github.com/linode/linodego v1.3.0 h1:77BPapuzhfIhXodiDUt/M76H46UiFYOytEupVN2auDI= +github.com/linode/linodego v1.3.0/go.mod h1:PVsRxSlOiJyvG4/scTszpmZDTdgS+to3X6eS8pRrWI8= +github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= +github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/logzio/jaeger-logzio v1.0.4 h1:kWOpjaUPTkrvw04KQuIizQHzT/VEfxs/GOJrgP6F994= +github.com/logzio/jaeger-logzio v1.0.4/go.mod h1:q1DEaUjGU7aJjMRU39W05Y/wRrKPqIXmgGMEplpFuiw= +github.com/logzio/logzio-go v1.0.3 h1:d99oJhRSjs9HVuMHlum/RWiHKrKhFiRj2jU9kEIajSk= +github.com/logzio/logzio-go v1.0.3/go.mod h1:nHe61sb1sBi/rxzPJr1TVPbHR86yf+fTBDxknnoNT5k= +github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= +github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= +github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lyft/protoc-gen-star v0.5.3/go.mod h1:V0xaHgaf5oCCqmcxYcWiDfTiKsZsRc87/1qhoTACD8w= +github.com/lyft/protoc-gen-star v0.6.0/go.mod h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA= +github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= +github.com/magefile/mage v1.10.0/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= +github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20180730094502-03f2033d19d5/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/maratori/testpackage v1.0.1/go.mod h1:ddKdw+XG0Phzhx8BFDTKgpWP4i7MpApTE5fXSKAqwDU= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= +github.com/matoous/godox v0.0.0-20210227103229-6504466cf951/go.mod h1:1BELzlh859Sh1c6+90blK8lbYy0kwQf1bYlBhBysy1s= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= +github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +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= +github.com/mattn/go-colorable v0.1.7/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.7/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.11.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-sqlite3 v1.14.12/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= +github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U= +github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/mattn/go-tty v0.0.0-20180907095812-13ff1204f104/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= +github.com/mbilski/exhaustivestruct v1.2.0/go.mod h1:OeTBVxQWoEmB2J2JCHmXWPJ0aksxSUOUy+nvtVEfzXc= +github.com/mgechev/dots v0.0.0-20190921121421-c36f7dcfbb81/go.mod h1:KQ7+USdGKfpPjXk4Ga+5XxQM4Lm4e3gAogrreFAYpOg= +github.com/mgechev/revive v1.0.3/go.mod h1:POGGZagSo/0frdr7VeAifzS5Uka0d0GPiM35MsTO8nE= +github.com/microsoft/ApplicationInsights-Go v0.4.4 h1:G4+H9WNs6ygSCe6sUyxRc2U81TI5Es90b2t/MwX5KqY= +github.com/microsoft/ApplicationInsights-Go v0.4.4/go.mod h1:fKRUseBqkw6bDiXTs3ESTiU/4YTIHsQS4W3fP2ieF4U= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= +github.com/miekg/dns v1.1.46 h1:uzwpxRtSVxtcIZmz/4Uz6/Rn7G11DvsaslXoy5LxQio= +github.com/miekg/dns v1.1.46/go.mod h1:e3IlAVfNqAllflbibAZEWOXOQ+Ynzk/dDozDxY7XnME= +github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= +github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 h1:PS1dLCGtD8bb9RPKJrc8bS7qHL6JnW1CZvwzH9dPoUs= +github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989/go.mod h1:2eu9pRWp8mo84xCg6KswZ+USQHjwgRhNp06sozOdsTY= +github.com/minio/highwayhash v1.0.1/go.mod h1:BQskDq+xkJ12lmlUUi7U0M5Swg3EWR+dLTk+kldvVxY= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1:aKW/4cBs+yK6gpqU3K/oIwk9Q/XICqd3zOX/UFuvqmk= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0= +github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.2.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mjibson/esc v0.2.0/go.mod h1:9Hw9gxxfHulMF5OJKCyhYD7PzlSdhzXyaGEBRPH1OPs= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/sys/mount v0.2.0 h1:WhCW5B355jtxndN5ovugJlMFJawbUODuW8fSnEH6SSM= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= +github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= +github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180320133207-05fbef0ca5da/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/modocache/gover v0.0.0-20171022184752-b58185e213c5/go.mod h1:caMODM3PzxT8aQXRPkAt8xlV/e7d7w8GM5g0fa5F0D8= +github.com/mongodb-forks/digest v1.0.3 h1:ZUK1vyZnBiRMvET0O1SzmnBmv935CkcOTjhfR4zIQ2s= +github.com/mongodb-forks/digest v1.0.3/go.mod h1:eHRfgovT+dvSFfltrOa27hy1oR/rcwyDdp5H1ZQxEMA= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= +github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mostynb/go-grpc-compression v1.1.16 h1:D9tGUINmcII049pxOj9dl32Fzhp26TrDVQXECoKJqQg= +github.com/mostynb/go-grpc-compression v1.1.16/go.mod h1:xxa6UoYynYS2h+5HB/Hglu81iYAp87ARaNmhhwi0s1s= +github.com/mozilla/tls-observatory v0.0.0-20190404164649-a3c1b6cfecfd/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= +github.com/mozilla/tls-observatory v0.0.0-20201209171846-0547674fceff/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= +github.com/mrunalp/fileutils v0.5.0 h1:NKzVxiH7eSk+OQ4M+ZYW1K6h27RUV3MI6NUTsHhU6Z4= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/mschoch/smat v0.0.0-20160514031455-90eadee771ae/go.mod h1:qAyveg+e4CE+eKJXWVjKXM4ck2QobLqTDytGJbLLhJg= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nakabonne/nestif v0.3.0/go.mod h1:dI314BppzXjJ4HsCnbo7XzrJHPszZsjnk5wEBSYHI2c= +github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= +github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= +github.com/nats-io/jwt v1.2.2/go.mod h1:/xX356yQA6LuXI9xWW7mZNpxgF2mBmGecH+Fj34sP5Q= +github.com/nats-io/jwt/v2 v2.0.2/go.mod h1:VRP+deawSXyhNjXmxPCHskrR6Mq50BqpEI5SEcNiGlY= +github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= +github.com/nats-io/nats-server/v2 v2.2.6/go.mod h1:sEnFaxqe09cDmfMgACxZbziXnhQFhwk+aKkZjBBRYrI= +github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= +github.com/nats-io/nats.go v1.11.0/go.mod h1:BPko4oXsySz4aSWeFgOHLZs3G4Jq4ZAyE6/zMCxRT6w= +github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= +github.com/nats-io/nkeys v0.2.0/go.mod h1:XdZpAbhgyyODYqjTawOnIOI7VlbKSarI9Gfy1tqEu/s= +github.com/nats-io/nkeys v0.3.0/go.mod h1:gvUNGjVcM2IPr5rCsRsC6Wb3Hr2CQAm08dsxtV6A5y4= +github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/nbutton23/zxcvbn-go v0.0.0-20180912185939-ae427f1e4c1d/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nbutton23/zxcvbn-go v0.0.0-20201221231540-e56b841a3c88/go.mod h1:KSVJerMDfblTH7p5MZaTt+8zaT2iEk3AkVb9PQdZuE8= +github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= +github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1 h1:6OX5VXMuj2salqNBc41eXKz6K+nV6OB/hhlGnAKCbwU= +github.com/newrelic/newrelic-telemetry-sdk-go v0.8.1/go.mod h1:2kY6OeOxrJ+RIQlVjWDc/pZlT3MIf30prs6drzMfJ6E= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nishanths/exhaustive v0.1.0/go.mod h1:S1j9110vxV1ECdCudXRkeMnFQ/DQk9ajLT0Uf2MYZQQ= +github.com/nishanths/predeclared v0.2.1/go.mod h1:HvkGJcA3naj4lOwnFXFDkFxVtSqQMB9sbB1usJ+xjQE= +github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/observiq/ctimefmt v1.0.0 h1:r7vTJ+Slkrt9fZ67mkf+mA6zAdR5nGIJRMTzkUyvilk= +github.com/observiq/ctimefmt v1.0.0/go.mod h1:mxi62//WbSpG/roCO1c6MqZ7zQTvjVtYheqHN3eOjvc= +github.com/observiq/nanojack v0.0.0-20201106172433-343928847ebc h1:49ewVBwLcy+eYqI4R0ICilCI4dPjddpFXWv3liXzUxM= +github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/oklog/run v1.1.0/go.mod h1:sVPdnTZT1zYwAJeCMu2Th4T21pA3FPOQRfWjQlk7DVU= +github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/olekukonko/tablewriter v0.0.4/go.mod h1:zq6QwlOf5SlnkVbMSr5EoBv3636FWnp+qbPhuoO21uA= +github.com/olivere/elastic v6.2.35+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8= +github.com/olivere/elastic v6.2.36+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8= +github.com/olivere/elastic v6.2.37+incompatible h1:UfSGJem5czY+x/LqxgeCBgjDn6St+z8OnsCuxwD3L0U= +github.com/olivere/elastic v6.2.37+incompatible/go.mod h1:J+q1zQJTgAz9woqsbVRqGeB5G1iqDKVBWLNSYW8yfJ8= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.14.1/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.14.2/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.2/go.mod h1:CObGmKUOKaSC0RjmoAK7tKyn4Azo5P2IWuoMnvwxz1E= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.2/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/onsi/gomega v1.10.4/go.mod h1:g/HbgYopi++010VEqkFgJHKC09uJiW9UkXvMUuKHUCQ= +github.com/onsi/gomega v1.13.0/go.mod h1:lRk9szgn8TxENtWd0Tp4c3wjlRfMTMH27I+3Je41yGY= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.16.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= +github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= +github.com/open-telemetry/opentelemetry-log-collection v0.29.0 h1:8P3dU3fuuUkdzkCvfMJyaqpvD1Hf4nnno6PlLjq3t50= +github.com/open-telemetry/opentelemetry-log-collection v0.29.0/go.mod h1:jc765D8x90g+kMfDSSb0MxoEURxoCxz1fV0dutvzlrc= +github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runc v1.1.0 h1:O9+X96OcDjkmmZyfaG996kV7yq8HsoU2h1XRRQcefG8= +github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417 h1:3snG66yBm59tKhhSPQrQ/0bCrv1LQbKt40LnUPiUxdc= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= +github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= +github.com/opencontainers/selinux v1.10.0 h1:rAiKF8hTcgLI3w0DHm6i0ylVVcOrlgR1kK99DRLDhyU= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/openlyinc/pointy v1.1.2 h1:LywVV2BWC5Sp5v7FoP4bUD+2Yn5k0VNeRbU5vq9jUMY= +github.com/openlyinc/pointy v1.1.2/go.mod h1:w2Sytx+0FVuMKn37xpXIAyBNhFNBIJGR/v2m7ik1WtM= +github.com/openshift/api v0.0.0-20210521075222-e273a339932a h1:aBPwLqCg66SbQd+HrjB1GhgTfPtqSY4aeB022tEYmE0= +github.com/openshift/api v0.0.0-20210521075222-e273a339932a/go.mod h1:izBmoXbUu3z5kUa4FjZhvekTsyzIWiOoaIgJiZBBMQs= +github.com/openshift/build-machinery-go v0.0.0-20210423112049-9415d7ebd33e/go.mod h1:b1BuldmJlbA/xYtdZvKi+7j5YGB44qJUJDZ9zwiNCfE= +github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142 h1:ZHRIMCFIJN1p9LsJt4HQ+akDrys4PrYnXzOWI5LK03I= +github.com/openshift/client-go v0.0.0-20210521082421-73d9475a9142/go.mod h1:fjS8r9mqDVsPb5td3NehsNOAWa4uiFkYEfVZioQ2gH0= +github.com/opentracing-contrib/go-grpc v0.0.0-20191001143057-db30781987df/go.mod h1:DYR5Eij8rJl8h7gblRrOZ8g0kW1umSpKqYIBTgeDtLo= +github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= +github.com/opentracing-contrib/go-stdlib v0.0.0-20190519235532-cf7a6c988dc9/go.mod h1:PLldrQSroqzH70Xl+1DQcGnefIbqsKR7UDaiux3zV+w= +github.com/opentracing-contrib/go-stdlib v1.0.0/go.mod h1:qtI1ogk+2JhVPIXVc6q+NHziSmy2W5GbdQZFUHADCBU= +github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= +github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.0.3-0.20180606204148-bd9c31933947/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= +github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= +github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= +github.com/openzipkin/zipkin-go v0.2.5/go.mod h1:KpXfKdgRDnnhsxw4pNIH9Md5lyFqKUa4YDFlwRYAMyE= +github.com/openzipkin/zipkin-go v0.4.0 h1:CtfRrOVZtbDj8rt1WXjklw0kqqJQwICrCKmlfUuBUUw= +github.com/openzipkin/zipkin-go v0.4.0/go.mod h1:4c3sLeE8xjNqehmF5RpAFLPLJxXscc0R4l6Zg0P1tTQ= +github.com/ory/go-acc v0.2.6/go.mod h1:4Kb/UnPcT8qRAk3IAxta+hvVapdxTLWtrr7bFLlEgpw= +github.com/ory/viper v1.7.5/go.mod h1:ypOuyJmEUb3oENywQZRgeAMwqgOyDqwboO1tj3DjTaM= +github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= +github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/paulbellamy/ratecounter v0.2.0/go.mod h1:Hfx1hDpSGoqxkVVpBi/IlYD7kChlfo5C6hzIHwPqfFE= +github.com/pavius/impi v0.0.0-20180302134524-c1cbdcb8df2b/go.mod h1:x/hU0bfdWIhuOT1SKwiJg++yvkk6EuOtJk8WtDZqgr8= +github.com/pavius/impi v0.0.3/go.mod h1:x/hU0bfdWIhuOT1SKwiJg++yvkk6EuOtJk8WtDZqgr8= +github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= +github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= +github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= +github.com/pelletier/go-toml v1.8.0/go.mod h1:D6yutnOGMveHEPV7VQOuvI/gXY61bv+9bAOTRnLElKs= +github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/peterh/liner v1.0.1-0.20180619022028-8c1271fcf47f/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= +github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d/go.mod h1:3OzsM7FXDQlpCiw2j81fOmAwQLnZnLGXVKUzeKQXIAw= +github.com/philhofer/fwd v1.0.0/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/philhofer/fwd v1.1.1 h1:GdGcTjf5RNAxwS4QLsiMzJYj5KEvPJD3Abr261yRQXQ= +github.com/philhofer/fwd v1.1.1/go.mod h1:gk3iGcWd9+svBvR0sR+KPcfE+RNWozjowpeBVG3ZVNU= +github.com/pierrec/cmdflag v0.0.2/go.mod h1:a3zKGZ3cdQUfxjd0RGMLZr8xI3nvpJOB+m6o/1X5BmU= +github.com/pierrec/lz4 v0.0.0-20190327172049-315a67e90e41/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.0+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= +github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pierrec/lz4/v3 v3.3.4/go.mod h1:280XNCGS8jAcG++AHdd6SeWnzyJ1w9oow2vbORyey8Q= +github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= +github.com/pkg/term v0.0.0-20180730021639-bffc007b7fd5/go.mod h1:eCbImbZ95eXtAUIbLAuAVnBnwf83mjf6QIVH8SHYwqQ= +github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/polyfloyd/go-errorlint v0.0.0-20201127212506-19bd8db6546f/go.mod h1:wi9BfjxjF/bwiZ701TzmfKu6UKC357IOAtNr0Td0Lvw= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= +github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= +github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= +github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= +github.com/prometheus/alertmanager v0.21.0/go.mod h1:h7tJ81NA0VLWvWEayi1QltevFkLF3KxmC/malTcT8Go= +github.com/prometheus/alertmanager v0.23.0/go.mod h1:0MLTrjQI8EuVmvykEhcfr/7X0xmaDAZrqMgxIq3OXHk= +github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= +github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= +github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= +github.com/prometheus/client_golang v1.6.0/go.mod h1:ZLOG9ck3JLRdB5MgO8f+lLTe83AXG6ro35rLTxvnIl4= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.9.0/go.mod h1:FqZLKOZnGdFAhOK4nqGHa7D66IdsO+O441Eve7ptJDU= +github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1 h1:ZiaPsmm9uiBeaSMRznKsCDNtPCS0T3JVDGF+06gjBzk= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= +github.com/prometheus/common v0.23.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q= +github.com/prometheus/common v0.25.0/go.mod h1:H6QK/N6XVT42whUeIdI3dp36w49c+/iMDk7UAI2qm7Q= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.29.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.33.0 h1:rHgav/0a6+uYgGdNt3jwz8FNSesO/Hsang3O0T9A5SE= +github.com/prometheus/common v0.33.0/go.mod h1:gB3sOl7P0TvJabZpLY5uQMpUqRCPPCyRLCZYc7JZTNE= +github.com/prometheus/common/assets v0.1.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI= +github.com/prometheus/common/sigv4 v0.1.0 h1:qoVebwtwwEhS85Czm2dSROY5fTo2PAPEVdDeppTwGX4= +github.com/prometheus/common/sigv4 v0.1.0/go.mod h1:2Jkxxk9yYvCkE5G1sQT7GuEXm57JrvHu9k5YwTjsNtI= +github.com/prometheus/exporter-toolkit v0.5.1/go.mod h1:OCkM4805mmisBhLmVFw858QYi3v0wKdY6/UxrT0pZVg= +github.com/prometheus/exporter-toolkit v0.6.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= +github.com/prometheus/exporter-toolkit v0.7.1/go.mod h1:ZUBIj498ePooX9t/2xtDjeQYwvRpiPP2lh5u4iblj2g= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190425082905-87a4384529e0/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.0.11/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/prometheus v1.8.2-0.20210430082741-2a4b8e12bbf2/go.mod h1:5aBj+GpLB+V5MCnrKm5+JAqEJwzDiLugOmDhgt7sDec= +github.com/prometheus/prometheus v1.8.2-0.20220324155304-4d8bbfd4164c h1:bSycx2Oqv9uTAatXvbPXiZsdc6dRUH5Ckk8afENqWE4= +github.com/prometheus/prometheus v1.8.2-0.20220324155304-4d8bbfd4164c/go.mod h1:NKnOBxc55oA1m/lbiEoLGKkIj9/n4igtIUvtfs35/pM= +github.com/prometheus/statsd_exporter v0.20.0/go.mod h1:YL3FWCG8JBBtaUSxAg4Gz2ZYu22bS84XM89ZQXXTWmQ= +github.com/prometheus/statsd_exporter v0.21.0 h1:hA05Q5RFeIjgwKIYEdFd59xu5Wwaznf33yKI+pyX6T8= +github.com/prometheus/statsd_exporter v0.21.0/go.mod h1:rbT83sZq2V+p73lHhPZfMc3MLCHmSHelCh9hSGYNLTQ= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= +github.com/quasilyte/go-ruleguard v0.3.0/go.mod h1:p2miAhLp6fERzFNbcuQ4bevXs8rgK//uCHsUDkumITg= +github.com/quasilyte/go-ruleguard/dsl v0.0.0-20210106184943-e47d54850b18/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/dsl v0.0.0-20210115110123-c73ee1cbff1f/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard/rules v0.0.0-20201231183845-9e62ed36efe1/go.mod h1:7JTjp89EGyU1d6XfBiXihJNG37wB2VRkd125Q1u7Plc= +github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95/go.mod h1:rlzQ04UMyJXu/aOvhd8qT+hvDrFpiwqp8MRXDY9szc0= +github.com/rabbitmq/amqp091-go v1.1.0/go.mod h1:ogQDLSOACsLPsIq0NpbtiifNZi2YOz0VTJ0kHRghqbM= +github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= +github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/retailnext/hllpp v1.0.1-0.20180308014038-101a6d2f8b52/go.mod h1:RDpi1RftBQPUCDRw6SmxeaREsAaRKnOclghuzp/WRzc= +github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= +github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.6.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg= +github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= +github.com/rs/cors v1.8.0/go.mod h1:EBwu+T5AvHOcXwvZIkQFjUN6s8Czyqw12GL/Y0tUyRM= +github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= +github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= +github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryancurrah/gomodguard v1.2.0/go.mod h1:rNqbC4TOIdUDcVMSIpNNAzTbzXAZa6W5lnUepvuMMgQ= +github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= +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= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/sagikazarmark/crypt v0.3.0/go.mod h1:uD/D+6UF4SrIR1uGEv7bBNkNqLGqUr43MRiaGWX1Nig= +github.com/sagikazarmark/crypt v0.4.0/go.mod h1:ALv2SRj7GxYV4HO9elxH9nS6M9gW+xDNxqmyJ6RfDFM= +github.com/samuel/go-zookeeper v0.0.0-20190810000440-0ceca61e4d75/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= +github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4= +github.com/sanposhiho/wastedassign v0.1.3/go.mod h1:LGpq5Hsv74QaqM47WtIsRSF/ik9kqk07kchgv66tLVE= +github.com/santhosh-tekuri/jsonschema v1.2.4 h1:hNhW8e7t+H1vgY+1QeEQpveR6D4+OwKPXCfD2aieJis= +github.com/santhosh-tekuri/jsonschema v1.2.4/go.mod h1:TEAUOeZSmIxTTuHatJzrvARHiuO9LYd+cIxzgEHCQI4= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.7.0.20210223165440-c65ae3540d44/go.mod h1:CJJ5VAbozOl0yEw7nHB9+7BXTJbIn6h7W+f6Gau5IP8= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.9 h1:0roa6gXKgyta64uqh52AQG3wzZXH21unn+ltzQSXML0= +github.com/scaleway/scaleway-sdk-go v1.0.0-beta.9/go.mod h1:fCa7OJZ/9DRTnOKmxvT6pn+LPWUptQAmHF/SBJUGEcg= +github.com/schollz/progressbar/v2 v2.13.2/go.mod h1:6YZjqdthH6SCZKv2rqGryrxPtfmRB/DWZxSMfCXPyD8= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921 h1:58EBmR2dMNL2n/FnbQewK3D14nXr0V9CObDSvMJLq+Y= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/securego/gosec v0.0.0-20200203094520-d13bb6d2420c/go.mod h1:gp0gaHj0WlmPh9BdsTmo1aq6C27yIPWdxCKGFGdVKBE= +github.com/securego/gosec/v2 v2.6.1/go.mod h1:I76p3NTHBXsGhybUW+cEQ692q2Vp+A0Z6ZLzDIZy+Ao= +github.com/segmentio/kafka-go v0.1.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.2.0/go.mod h1:X6itGqS9L4jDletMsxZ7Dz+JFWxM6JHfPOCvTvk+EJo= +github.com/segmentio/kafka-go v0.4.29/go.mod h1:m1lXeqJtIFYZayv0shM/tjrAFljvWLTprxBHd+3PnaU= +github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c/go.mod h1:/PevMnwAxekIXwN8qQyfc5gl2NlkB3CQlkizAbOkeBs= +github.com/shirou/gopsutil v2.18.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v2.20.9+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.21.5+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil v3.21.10+incompatible h1:AL2kpVykjkqeN+MFe1WcwSBVUjGjvdU8/ubvCuXAjrU= +github.com/shirou/gopsutil v3.21.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/gopsutil/v3 v3.21.1/go.mod h1:igHnfak0qnw1biGeI2qKQvu0ZkwvEkUcCLlYhZzdr/4= +github.com/shirou/gopsutil/v3 v3.21.6/go.mod h1:JfVbDpIBLVzT8oKbvMg9P3wEIMDDpVn+LwHTKj0ST88= +github.com/shirou/gopsutil/v3 v3.21.9/go.mod h1:YWp/H8Qs5fVmf17v7JNZzA0mPJ+mS2e9JdiUF9LlKzQ= +github.com/shirou/gopsutil/v3 v3.22.3 h1:UebRzEomgMpv61e3hgD1tGooqX5trFbdU/ehphbHd00= +github.com/shirou/gopsutil/v3 v3.22.3/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= +github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= +github.com/shopspring/decimal v0.0.0-20200227202807-02e2044944cc/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.2.0 h1:abSATXmQEYyShuxI4/vyW3tV1MrKAJzCZ/0zLUXYbsQ= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/shurcooL/vfsgen v0.0.0-20181202132449-6a9ea43bcacd/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= +github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546/go.mod h1:TrYk7fJVaAttu97ZZKrO9UbRa8izdowaMIZcxYMbVaw= +github.com/signalfx/com_signalfx_metrics_protobuf v0.0.1/go.mod h1:QkslgLDW0N9qRi9qkxcNDaf812gg0kWcf3ZZORE5/FI= +github.com/signalfx/com_signalfx_metrics_protobuf v0.0.2/go.mod h1:tCQQqyJAVF1+mxNdqOi18sS/zaSrE6EMyWwRA2QTl70= +github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3 h1:32k2QLgsKhcEs55q4REPKyIadvid5FPy2+VMgvbmKJ0= +github.com/signalfx/com_signalfx_metrics_protobuf v0.0.3/go.mod h1:gJrXWi7wSGXfiC7+VheQaz+ypdCt5SmZNL+BRxUe7y4= +github.com/signalfx/gohistogram v0.0.0-20160107210732-1ccfd2ff5083 h1:WsShHmu12ZztYPfh9b+I+VjYD1o8iOHhB67WZCMEEE8= +github.com/signalfx/gohistogram v0.0.0-20160107210732-1ccfd2ff5083/go.mod h1:adPDS6s7WaajdFBV9mQ7i0dKfQ8xiDnF9ZNETVPpp7c= +github.com/signalfx/golib/v3 v3.3.13/go.mod h1:LKKCrEw4rU8ZL/8dVwX5i1+kqm4utB7uaHQpRx587rs= +github.com/signalfx/golib/v3 v3.3.44 h1:h9ZGN7gjeAL2VdVN8VDnXg1tcw93S1dL3ZkIGMyvfrk= +github.com/signalfx/golib/v3 v3.3.44/go.mod h1:LR8eTSda7NzynOqe0ibvV63OuqorWcHDtRCY22zTpKg= +github.com/signalfx/gomemcache v0.0.0-20180823214636-4f7ef64c72a9/go.mod h1:Ytb8KfCSyuwy/VILnROdgCvbQLA5ch0nkbG7lKT0BXw= +github.com/signalfx/sapm-proto v0.4.0/go.mod h1:x3gtwJ1GRejtkghB4nYpwixh2zqJrLbPU959ZNhM0Fk= +github.com/signalfx/sapm-proto v0.7.2/go.mod h1:HLufOh6Gd2altGxbeve+s6hh0EWCWoOM7MmuYuvs5PI= +github.com/signalfx/sapm-proto v0.9.0 h1:x4EfhzOZtBGyt2x8gc/C23Id9B+3lf1zE59VUWLKbpQ= +github.com/signalfx/sapm-proto v0.9.0/go.mod h1:OmhyyGyhBzoKQn6G2wM1vpEsGKGo0lym/kj0G41KqZk= +github.com/signalfx/signalfx-agent/pkg/apm v0.0.0-20201202163743-65b4fa925fc8 h1:pK1/PlwhBPVa2+SqAo7nVfwE/zbGz1p3WlcqwcoLSBk= +github.com/signalfx/signalfx-agent/pkg/apm v0.0.0-20201202163743-65b4fa925fc8/go.mod h1:pNaqfprM2bSCBhE8sTT2NtasSWEsIJbrmnIF0ap/Cvg= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +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/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.8.0/go.mod h1:4GuYW9TZmE769R5STWrRakJc4UqQ3+QQ95fyz7ENv1A= +github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.0.1 h1:voD4ITNjPL5jjBfgR/r8fPIIBrliWrWHeiJApdr3r4w= +github.com/smartystreets/assertions v1.0.1/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= +github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4-0.20190306220146-200a235640ff/go.mod h1:KSQcGKpxUMHk3nbYzs/tIBAM2iDooCn0BmttHOJEbLs= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/gunit v1.1.3/go.mod h1:EH5qMBab2UclzXUcpR8b93eHsIlp9u+pDQIRp5DZNzQ= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sonatard/noctx v0.0.1/go.mod h1:9D2D/EoULe8Yy2joDHJj7bv3sZoq9AaSb8B4lqBjiZI= +github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= +github.com/sourcegraph/go-diff v0.6.1/go.mod h1:iBszgVvyxdc8SFZ7gm69go2KDdt3ag071iBaWPF6cjs= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/afero v1.3.3/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4= +github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v0.0.7/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= +github.com/spf13/cobra v1.3.0/go.mod h1:BrRVncBjOJa/eUcVVm9CE+oC6as8k+VYr4NY7WCi9V4= +github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= +github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +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/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= +github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= +github.com/spf13/viper v1.10.0/go.mod h1:SoyBPwAtKDzypXNDFKN5kzH7ppppbGZtls1UpIy5AsM= +github.com/spf13/viper v1.10.1 h1:nuJZuYpG7gTj/XqiUwg8bA0cp1+M2mC3J4g5luUYBKk= +github.com/spf13/viper v1.10.1/go.mod h1:IGlFPqhNAPKRxohIzWpI5QEy4kuI7tcl5WvR+8qy1rU= +github.com/ssgreg/nlreturn/v2 v2.1.0/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= +github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= +github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/amqp v1.0.0/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= +github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= +github.com/streadway/handy v0.0.0-20200128134331-0f66f006fb2e/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= +github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/objx v0.3.0 h1:NGXK3lHquSN08v5vWalVI/L8XU9hdzE/G6xsrze47As= +github.com/stretchr/objx v0.3.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20151208002404-e3a8ff8ce365/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= +github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/goleveldb v1.0.0 h1:fBdIW9lB4Iz0n9khmH8w27SJ3QEJ7+IgjPEwGSZiFdE= +github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpPAyBWyWuQ= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= +github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= +github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.382 h1:KB9aCEVgtd4vaBTsObJT3/pcAP8tB5m8e4U4UpyKqW4= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.382/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= +github.com/testcontainers/testcontainers-go v0.13.0 h1:OUujSlEGsXVo/ykPVZk3KanBNGN0TYb/7oKIPVn15JA= +github.com/tetafro/godot v1.4.4/go.mod h1:FVDd4JuKliW3UgjswZfJfHq4vAx0bD/Jd5brJjGeaz4= +github.com/tg123/go-htpasswd v1.2.0 h1:UKp34m9H467/xklxUxU15wKRru7fwXoTojtxg25ITF0= +github.com/tg123/go-htpasswd v1.2.0/go.mod h1:h7IzlfpvIWnVJhNZ0nQ9HaFxHb7pn5uFJYLlEUJa2sM= +github.com/tidwall/assert v0.1.0/go.mod h1:QLYtGyeqse53vuELQheYl9dngGCJQ+mTtlxcktb+Kj8= +github.com/tidwall/btree v0.3.0/go.mod h1:huei1BkDWJ3/sLXmO+bsCNELL+Bp2Kks9OLyQFkzvA8= +github.com/tidwall/btree v1.1.0/go.mod h1:TzIRzen6yHbibdSfK6t8QimqbUnoxUSrZfeW7Uob0q4= +github.com/tidwall/buntdb v1.2.0/go.mod h1:XLza/dhlwzO6dc5o/KWor4kfZSt3BP8QV+77ZMKfI58= +github.com/tidwall/cities v0.1.0/go.mod h1:lV/HDp2gCcRcHJWqgt6Di54GiDrTZwh1aG2ZUPNbqa4= +github.com/tidwall/geoindex v1.4.4/go.mod h1:rvVVNEFfkJVWGUdEfU8QaoOg/9zFX0h9ofWzA60mz1I= +github.com/tidwall/gjson v1.6.7/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= +github.com/tidwall/gjson v1.6.8/go.mod h1:zeFuBCIqD4sN/gmqBzZ4j7Jd6UcA2Fc56x7QFsv+8fI= +github.com/tidwall/gjson v1.8.0/go.mod h1:5/xDoumyyDNerp2U36lyolv46b3uF/9Bu6OfyQ9GImk= +github.com/tidwall/gjson v1.10.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/gjson v1.12.1 h1:ikuZsLdhr8Ws0IdROXUS1Gi4v9Z4pGqpX/CvJkxvfpo= +github.com/tidwall/gjson v1.12.1/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= +github.com/tidwall/grect v0.1.0/go.mod h1:sa5O42oP6jWfTShL9ka6Sgmg3TgIK649veZe05B7+J8= +github.com/tidwall/grect v0.1.4/go.mod h1:9FBsaYRaR0Tcy4UwefBX/UDcDcDy9V5jUcxHzv2jd5Q= +github.com/tidwall/lotsa v1.0.2/go.mod h1:X6NiU+4yHA3fE3Puvpnn1XMDrFZrE9JO2/w+UMuqgR8= +github.com/tidwall/match v1.0.3/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/match v1.1.1 h1:+Ho715JplO36QYgwN9PGYNhgZvoUSc9X2c80KVTi+GA= +github.com/tidwall/match v1.1.1/go.mod h1:eRSPERbgtNPcGhD8UCthc6PmLEQXEWd3PRB5JTxsfmM= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.1.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tidwall/pretty v1.2.0 h1:RWIZEg2iJ8/g6fDDYzMpobmaoGh5OLl4AXtGUGPcqCs= +github.com/tidwall/pretty v1.2.0/go.mod h1:ITEVvHYasfjBbM0u2Pg8T2nJnzm8xPwvNhhsoaGGjNU= +github.com/tidwall/rtred v0.1.2/go.mod h1:hd69WNXQ5RP9vHd7dqekAz+RIdtfBogmglkZSRxCHFQ= +github.com/tidwall/rtree v1.3.1/go.mod h1:S+JSsqPTI8LfWA4xHBo5eXzie8WJLVFeppAutSegl6M= +github.com/tidwall/sjson v1.1.7/go.mod h1:w/yG+ezBeTdUxiKs5NcPicO9diP38nk96QBAbIIGeFs= +github.com/tidwall/tinylru v1.1.0 h1:XY6IUfzVTU9rpwdhKUF6nQdChgCdGjkMfLzbWyiau6I= +github.com/tidwall/tinylru v1.1.0/go.mod h1:3+bX+TJ2baOLMWTnlyNWHh4QMnFyARg2TLTQ6OFbzw8= +github.com/tidwall/tinyqueue v0.1.1/go.mod h1:O/QNHwrnjqr6IHItYrzoHAKYhBkLI67Q096fQP5zMYw= +github.com/tidwall/wal v1.1.7 h1:emc1TRjIVsdKKSnpwGBAcsAGg0767SvUk8+ygx7Bb+4= +github.com/tidwall/wal v1.1.7/go.mod h1:r6lR1j27W9EPalgHiB7zLJDYu3mzW5BQP5KrzBpYY/E= +github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/tinylib/msgp v1.0.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tinylib/msgp v1.1.2/go.mod h1:+d+yLhGm8mzTaHzB+wgMYrodPfmZrzkirds8fDWklFE= +github.com/tinylib/msgp v1.1.6 h1:i+SbKraHhnrf9M5MYmvQhFnbLhAXSDWF8WWsuyRdocw= +github.com/tinylib/msgp v1.1.6/go.mod h1:75BAfg2hauQhs3qedfdDZmWAPcFMAvJE5b9rGOMufyw= +github.com/tklauser/go-sysconf v0.3.5/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/go-sysconf v0.3.6/go.mod h1:MkWzOF4RMCshBAMXuhXJs64Rte09mITnppBXY/rYEFI= +github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= +github.com/tklauser/go-sysconf v0.3.10 h1:IJ1AZGZRWbY8T5Vfk04D9WOA5WSejdflXxP03OUqALw= +github.com/tklauser/go-sysconf v0.3.10/go.mod h1:C8XykCvCb+Gn0oNCWPIlcb0RuglQTYaQ2hGm7jmxEFk= +github.com/tklauser/numcpus v0.2.2/go.mod h1:x3qojaO3uyYt0i56EW/VUYs7uBvdl2fkfZFu0T9wgjM= +github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= +github.com/tklauser/numcpus v0.4.0 h1:E53Dm1HjH1/R2/aoCtXtPgzmElmn51aOkhCFSuZq//o= +github.com/tklauser/numcpus v0.4.0/go.mod h1:1+UI3pD8NW14VMwdgJNJ1ESk2UnwhAnz5hMwiKKqXCQ= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs= +github.com/tomarrell/wrapcheck v0.0.0-20201130113247-1683564d9756/go.mod h1:yiFB6fFoV7saXirUGfuK+cPtUh4NX/Hf5y2WC2lehu0= +github.com/tommy-muehle/go-mnd/v2 v2.3.1/go.mod h1:WsUAkMJMYww6l/ufffCD3m+P7LEvr8TnZn9lwVDlgzw= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/twitchtv/twirp v8.1.1+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= +github.com/uber/jaeger-client-go v2.25.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.29.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-client-go v2.30.0+incompatible h1:D6wyKGCecFaSRUpo8lCVbaOOb6ThwMmTEbhRwtKR97o= +github.com/uber/jaeger-client-go v2.30.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.4.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVKhn2Um6rjCsSsg= +github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/ultraware/funlen v0.0.3/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/whitespace v0.0.4/go.mod h1:aVMh/gQve5Maj9hQ/hg+F75lr/X5A89uZnzAmWSineA= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= +github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= +github.com/uudashr/gocognit v1.0.1/go.mod h1:j44Ayx2KW4+oB6SWMv8KsmHzZrOInQav7D3cQMJ5JUM= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.16.0/go.mod h1:YOKImeEosDdBPnxc0gy7INqi3m1zK6A+xl6TwOBhHCA= +github.com/valyala/fasthttp v1.26.0/go.mod h1:cmWIqlu99AO/RKcp1HWaViTqc57FswJOfYYdPJBl8BA= +github.com/valyala/fasthttp v1.32.0/go.mod h1:2rsYD01CKFrjjsvFxx75KlEUNpWNBY9JWD3K/7o2Cus= +github.com/valyala/fasttemplate v1.0.1/go.mod h1:UQGH1tvbgY+Nz5t2n7tXsz52dQxojPUpymEIMZ47gx8= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= +github.com/valyala/quicktemplate v1.6.3/go.mod h1:fwPzK2fHuYEODzJ9pkw0ipCPNHZ2tD5KW4lOuSdPKzY= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/valyala/tcplisten v1.0.0/go.mod h1:T0xQ8SeCZGxckz9qRXTfG43PvQ/mcWh7FwZEA7Ioqkc= +github.com/vaughan0/go-ini v0.0.0-20130923145212-a98ad7ee00ec/go.mod h1:owBmyHYMLkxyrugmfwE/DLJyW8Ro9mkphwuVErQ0iUw= +github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= +github.com/vektra/mockery v0.0.0-20181123154057-e78b021dcbb5/go.mod h1:ppEjwdhyy7Y31EnHRDm1JkChoC7LXIJ7Ex0VYLWtZtQ= +github.com/vincent-petithory/dataurl v1.0.0 h1:cXw+kPto8NLuJtlMsI152irrVw9fRDX8AbShPRpg2CI= +github.com/vincent-petithory/dataurl v1.0.0/go.mod h1:FHafX5vmDzyP+1CQATJn7WFKc9CvnvxyvZy6I1MrG/U= +github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5 h1:+UB2BJA852UkGH42H+Oee69djmxS3ANzl2b/JtT1YiA= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vmihailenco/bufpool v0.1.11/go.mod h1:AFf/MOy3l2CFTKbxwt0mp2MwnqjNEs5H/UxrkA5jxTQ= +github.com/vmihailenco/msgpack/v4 v4.3.11/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= +github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/msgpack/v5 v5.0.0-beta.1/go.mod h1:xlngVLeyQ/Qi05oQxhQ+oTuqa03RjMwMfk/7/TCs+QI= +github.com/vmihailenco/msgpack/v5 v5.3.4/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= +github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc= +github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser v0.1.2 h1:gnjoVuB/kljJ5wICEEOpx98oXMWPLj22G67Vbd1qPqc= +github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/wadey/gocovmerge v0.0.0-20160331181800-b5bfa59ec0ad/go.mod h1:Hy8o65+MXnS6EwGElrSRjUzQDLXreJlzYLlWiHtt8hM= +github.com/wavefronthq/wavefront-sdk-go v0.9.11 h1:3qv/yyNNyLKPQftQWFrfHGUv50e/gMxKlUQnILlvHKw= +github.com/wavefronthq/wavefront-sdk-go v0.9.11/go.mod h1:AcW8zJJcYodB7B9KYzoxVH6K0fmYd6MgpmXE1LMo+OU= +github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/scram v1.1.0/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/scram v1.1.1 h1:VOMT+81stJgXW3CpHyqHN3AXDYIMsx56mEFrB37Mb/E= +github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g= +github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= +github.com/xdg-go/stringprep v1.0.3 h1:kdwGpVNwPFtjs98xCGkHjQtGKh86rDcRZN17QEMCOIs= +github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/scram v1.0.3/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= +github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xdg/stringprep v1.0.3/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= +github.com/xlab/treeprint v1.0.0/go.mod h1:IoImgRak9i3zJyuxOKUP1v4UZd1tMoKkq/Cimt1uhCg= +github.com/xlab/treeprint v1.1.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= +github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= +github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/zenazn/goji v1.0.1/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= +github.com/zorkian/go-datadog-api v2.30.0+incompatible h1:R4ryGocppDqZZbnNc5EDR8xGWF/z/MxzWnqTUijDQes= +go.elastic.co/apm v1.15.0 h1:uPk2g/whK7c7XiZyz/YCUnAUBNPiyNeE3ARX3G6Gx7Q= +go.elastic.co/apm v1.15.0/go.mod h1:dylGv2HKR0tiCV+wliJz1KHtDyuD8SPe69oV7VyK6WY= +go.elastic.co/fastjson v1.1.0 h1:3MrGBWWVIxe/xvsbpghtkFoPciPhOCmjsR/HfwEeQR4= +go.elastic.co/fastjson v1.1.0/go.mod h1:boNGISWMjQsUPy/t6yqt2/1Wx4YNPSe+mZjlyw9vKKI= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v2 v2.305.1/go.mod h1:pMEacxZW7o8pg4CrFE7pquyCJJzZvkvdD2RibOCCCGs= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= +go.mongodb.org/atlas v0.15.0 h1:YyOBdBIuI//krRITf4r7PSirJ3YDNNUfNmapxwSyDow= +go.mongodb.org/atlas v0.15.0/go.mod h1:lQhRHIxc6jQHEK3/q9WLu/SdBkPj2fQYhjLGUF6Z3U8= +go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= +go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.3.2/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= +go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= +go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= +go.mongodb.org/mongo-driver v1.5.2/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= +go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= +go.mongodb.org/mongo-driver v1.7.5/go.mod h1:VXEWRZ6URJIkUq2SCAyapmhH0ZLRBP+FT4xhp5Zvxng= +go.mongodb.org/mongo-driver v1.8.3/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY= +go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= +go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +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/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/collector v0.28.0/go.mod h1:AP/BTXwo1eedoJO7V+HQ68CSvJU1lcdqOzJCgt1VsNs= +go.opentelemetry.io/collector v0.49.0 h1:brKMIUwlL1bt0Faxqqxvj7549KWm9FEN77Z4i4RAlDE= +go.opentelemetry.io/collector v0.49.0/go.mod h1:ErYGC1VzzrpK/uM134DJIbARX3jl9vtTqgIXsiWxjGE= +go.opentelemetry.io/collector/model v0.44.0/go.mod h1:4jo1R8uBDspLCxUGhQ0k3v/EFXFbW7s0AIy3LuGLbcU= +go.opentelemetry.io/collector/model v0.45.0/go.mod h1:uyiyyq8lV45zrJ94MnLip26sorfNLP6J9XmOvaEmy7w= +go.opentelemetry.io/collector/model v0.46.0/go.mod h1:uyiyyq8lV45zrJ94MnLip26sorfNLP6J9XmOvaEmy7w= +go.opentelemetry.io/collector/model v0.48.0/go.mod h1:1QVYv8TqsTMt9wVC5BUF9fqMVtk2C5EclWDnuVqdKoU= +go.opentelemetry.io/collector/model v0.49.0 h1:mbUSNgpaBE3GWmzGsRb5t0xILpXIVYv7scPTTfoMt6c= +go.opentelemetry.io/collector/model v0.49.0/go.mod h1:nOYQv9KoFPs6ihJwOi24qB209EOhS9HkwhGj54YiEAw= +go.opentelemetry.io/collector/pdata v0.49.0 h1:aYj5rOlRC0x7lGXbc185LMsMMoY/pjOTXr5s1O2SzXs= +go.opentelemetry.io/collector/pdata v0.49.0/go.mod h1:YwmKuiFhNgtmhRdpi8Q8FAWPa0AwJTCSlssSsAtuRcY= +go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0 h1:li8u9OSMvLau7rMs8bmiL82OazG6MAkwPz2i6eS8TBQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.31.0/go.mod h1:SY9qHHUES6W3oZnO1H2W8NvsSovIoXRg/A1AH9px8+I= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.24.0/go.mod h1:7W3JSDYTtH3qKKHrS1fMiwLtK7iZFLPq1+7htfspX/E= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.26.0/go.mod h1:4vatbW3QwS11DK0H0SB7FR31/VbthXcYorswdkVXdyg= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0/go.mod h1:tLYsuf2v8fZreBVwp9gVMhefZlLFZaUiNVSq8QxXRII= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 h1:woM+Mb4d0A+Dxa3rYPenSN5ZeS9qHUvE8rlObiLRXTY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0/go.mod h1:PFmBsWbldL1kiWZk9+0LBZz2brhByaGsvp6pRICMlPE= +go.opentelemetry.io/contrib/zpages v0.31.0 h1:P75HGsEZp/TSdY0QSknzI9ubo7DU3i5MPGHM7h9IwL4= +go.opentelemetry.io/contrib/zpages v0.31.0/go.mod h1:CAB55C1K7YhinQfNNIdNLgJJ+dVRlb6zQpbGQjeIDf8= +go.opentelemetry.io/otel v0.11.0/go.mod h1:G8UCk+KooF2HLkgo8RHX9epABH/aRGYET7gQOqBVdB0= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.0.0-RC3/go.mod h1:Ka5j3ua8tZs4Rkq4Ex3hwgBgOchyPVq5S6P2lz//nKQ= +go.opentelemetry.io/otel v1.0.0/go.mod h1:AjRVh9A5/5DE7S+mZtTR6t8vpKKryam+0lREnfmS4cg= +go.opentelemetry.io/otel v1.0.1/go.mod h1:OPEOD4jIT2SlZPMmwT6FqZz2C0ZNdQqiWcoK6M0SNFU= +go.opentelemetry.io/otel v1.1.0/go.mod h1:7cww0OW51jQ8IaZChIEdqLwgh+44+7uiTdWsAL0wQpA= +go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= +go.opentelemetry.io/otel v1.4.0/go.mod h1:jeAqMFKy2uLIxCtKxoFj0FAL5zAPKQagc3+GtBWakzk= +go.opentelemetry.io/otel v1.4.1/go.mod h1:StM6F/0fSwpd8dKWDCdRr7uRvEPYdW0hBSlbdTiUde4= +go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ= +go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ= +go.opentelemetry.io/otel v1.6.3 h1:FLOfo8f9JzFVFVyU+MSRJc2HdEAXQgm7pIv2uFKRSZE= +go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.4.1/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1/go.mod h1:o5RW5o2pKpJLD5dNTCmjF1DorYwMeFJmb/rKr5sLaa8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.1/go.mod h1:c6E4V3/U+miqjs/8l950wggHGL1qzlp0Ypj9xoGrPqo= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.4.1/go.mod h1:VwYo0Hak6Efuy0TXsZs8o1hnV3dHDPNtDbycG0hI8+M= +go.opentelemetry.io/otel/exporters/prometheus v0.29.0 h1:jOrFr8pCPj52GCPNq3qd69SEug3QmqDJTzbrefUxkpw= +go.opentelemetry.io/otel/exporters/prometheus v0.29.0/go.mod h1:Er2VVJQZbHysogooLNchdZ3MLYoI7+d15mHmrRlRJCU= +go.opentelemetry.io/otel/internal/metric v0.23.0/go.mod h1:z+RPiDJe30YnCrOhFGivwBS+DU1JU/PiLKkk4re2DNY= +go.opentelemetry.io/otel/internal/metric v0.24.0/go.mod h1:PSkQG+KuApZjBpC6ea6082ZrWUUy/w132tJ/LOU3TXk= +go.opentelemetry.io/otel/internal/metric v0.27.0/go.mod h1:n1CVxRqKqYZtqyTh9U/onvKapPGv7y/rpyOTI+LFNzw= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/metric v0.23.0/go.mod h1:G/Nn9InyNnIv7J6YVkQfpc0JCfKBNJaERBGw08nqmVQ= +go.opentelemetry.io/otel/metric v0.24.0/go.mod h1:tpMFnCD9t+BEGiWY2bWF5+AwjuAdM0lSowQ4SBA3/K4= +go.opentelemetry.io/otel/metric v0.27.0/go.mod h1:raXDJ7uP2/Jc0nVZWQjJtzoyssOYWu/+pjZqRzfvZ7g= +go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw= +go.opentelemetry.io/otel/metric v0.29.0 h1:7unM/I13Dbc1VHw8lTPQ7zfNIgkhcb8BZhujXOS4jKc= +go.opentelemetry.io/otel/metric v0.29.0/go.mod h1:HahKFp1OC1RNTsuO/HNMBHHJR+dmHZ7wLARRgGDwjLQ= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.0.1/go.mod h1:HrdXne+BiwsOHYYkBE5ysIcv2bvdZstxzmCQhxTcZkI= +go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= +go.opentelemetry.io/otel/sdk v1.4.1/go.mod h1:NBwHDgDIBYjwK2WNu1OPgsIc2IJzmBXNnvIJxJc8BpE= +go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E= +go.opentelemetry.io/otel/sdk v1.6.3 h1:prSHYdwCQOX5DrsEzxowH3nLhoAzEBdZhvrR79scfLs= +go.opentelemetry.io/otel/sdk v1.6.3/go.mod h1:A4iWF7HTXa+GWL/AaqESz28VuSBIcZ+0CV+IzJ5NMiQ= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/sdk/metric v0.29.0 h1:OCEp2igPFXQrGxSR/nwd/bDjkPlPlOVjIULA/ob0dNw= +go.opentelemetry.io/otel/sdk/metric v0.29.0/go.mod h1:IFkFNKI8Gq8zBdqOKdODCL9+LInBZLXaGpqSIKphNuU= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.0.0-RC3/go.mod h1:VUt2TUYd8S2/ZRX09ZDFZQwn2RqfMB5MzO17jBojGxo= +go.opentelemetry.io/otel/trace v1.0.0/go.mod h1:PXTWqayeFUlJV1YDNhsJYB184+IvAH814St6o6ajzIs= +go.opentelemetry.io/otel/trace v1.0.1/go.mod h1:5g4i4fKLaX2BQpSBsxw8YYcgKpMMSW3x7ZTuYBr3sUk= +go.opentelemetry.io/otel/trace v1.1.0/go.mod h1:i47XtdcBQiktu5IsrPqOHe8w+sBmnLwwHt8wiUsWGTI= +go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= +go.opentelemetry.io/otel/trace v1.4.0/go.mod h1:uc3eRsqDfWs9R7b92xbQbU42/eTNz4N+gLP8qJCi4aE= +go.opentelemetry.io/otel/trace v1.4.1/go.mod h1:iYEVbroFCNut9QkwEczV9vMRPHNKSSwYZjulEtsmhFc= +go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE= +go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0= +go.opentelemetry.io/otel/trace v1.6.3 h1:IqN4L+5b0mPNjdXIiZ90Ni4Bl5BRkDQywePLWemd9bc= +go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= +go.opentelemetry.io/proto/otlp v0.12.0/go.mod h1:TsIjwGWIx5VFYv9KGVlOpxoBl5Dy+63SUguV7GGvlSQ= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.8.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/automaxprocs v1.4.0/go.mod h1:/mTEdr7LvHhs0v7mjdxDreTz1OG5zdZGqgOnhWiR/+Q= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.7.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.18.1/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.19.0/go.mod h1:xg/QME4nWcxGxrpdeYfq7UvYrLh66cuVKdrbD1XF/NI= +go.uber.org/zap v1.20.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20180910181607-0e37d006457b/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190211182817-74369b46fc67/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190228161510-8dd112bcdc25/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190404164418-38d8ce5564a5/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190411191339-88737f569e3a/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190418165655-df01cb2cc480/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= +golang.org/x/crypto v0.0.0-20190506204251-e1dfcc566284/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190911031432-227b76d455e7/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201112155050-0c6587e931a9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201208171446-5f87f3452ae9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210314154223-e6e6c4f2bb5b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8= +golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210920023735-84f357641f63/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= +golang.org/x/exp v0.0.0-20200901203048-c4f52b2c50aa/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/exp v0.0.0-20200908183739-ae8ad444f925 h1:5XVKs2rlCg8EFyRcvO8/XFwYxh1oKJO1Q3X5vttIf9c= +golang.org/x/exp v0.0.0-20200908183739-ae8ad444f925/go.mod h1:1phAWC201xIgDyaFpmDeZkgf70Q4Pd/CNqfRtVPtxNw= +golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.0/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= +golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190921015927-1a5e07d1ff72/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210224082022-3d97a244fca7/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210324051636-2c4c8ecb7826/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8= +golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= +golang.org/x/net v0.0.0-20210427231257-85d9c07bbe3a/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210510120150-4163338589ed/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210716203947-853a461950ff/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220105145211-5b0dc2dfae98/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= +golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210323180902-22b0adad7558/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211005180243-6b3c2da341f1/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a h1:qfl7ob3DIEs3Ml9oLuPwY2N04gymzAW04WsUQHIClgM= +golang.org/x/oauth2 v0.0.0-20220309155454-6242fa91716a/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20170830134202-bb24a47a89ea/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190130150945-aca44879d564/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190209173611-3b5209105503/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190405154228-4b34438f7a67/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191010194322-b09406accb47/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191025021431-6c3a3bfe00ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200420163511-1957bb5e6d1f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200602225109-6fdc65e7d980/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200826173525-f9321e4c35a6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201024232916-9f70ab9862d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201214210602-f9fddec55a1e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210314195730-07df6a141424/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210316164454-77fc1eacc6aa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210611083646-a4fc73990273/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210816183151-1e6c022a8912/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210917161153-d61c044b1678/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211210111614-af8b64212486/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220207234003-57398862261d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220222172238-00053529121e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886 h1:eJv7u3ksNXoLbGSKuv2s/SIO4tJVxc/A+MTpzxDgz/Q= +golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20201208040808-7e3f01d25324/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20211116232009-f0f3c7e86c11/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 h1:M73Iuj3xbbb9Uk1DYhzydthsj6oOd6l9bpuFcNoUvTs= +golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181112210238-4b1f3b6b1646/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190206041539-40960b6deb8e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190307163923-6a08e3108db3/go.mod h1:25r3+/G6/xytQM8iWZKq3Hn0kr0rgFKPUNVEL/dr3z4= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190321232350-e250d351ecad/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190823170909-c4a336ef6a2f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190906203814-12febf440ab1/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190916130336-e45ffcd953cc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200108203644-89082a384178/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117220505-0cba7a3a9ee9/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200203023011-6f24f261dadb/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200414032229-332987a829c3/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200422022333-3d57cf2e726e/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200513201620-d5fe73897c97/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200527183253-8e7acdbce89d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200622203043-20e05c1c8ffa/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200624225443-88f3c62a19ff/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200625211823-6506e20df31f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200701151220-7cb253f4c4f8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200812195022-5ae4c3c160a0/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200831203904-5a2aa26beb65/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201001104356-43ebab892c4c/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201002184944-ecd9fd270d5d/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201011145850-ed2f50202694/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201022035929-9cf592e881e9/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201028025901-8cd080b735b3/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201114224030-61ea331ec02b/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201118003311-bd56c0adb394/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201230224404-63754364767c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210101214203-2dba1e4ea05c/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210102185154-773b96fafca2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210104081019-d8d6ddbec6ee/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210112230658-8b4aab62c064/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= +golang.org/x/tools v0.1.9 h1:j9KsMiaP1c3B0OTQGth0/k+miLGTgLsAFUCrF2vLcF8= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= +golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +gonum.org/v1/gonum v0.0.0-20180816165407-929014505bf4/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.0.0-20181121035319-3f7ecaa7e8ca/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= +gonum.org/v1/gonum v0.6.0/go.mod h1:9mxDZsDKxgMAuccQkewq682L+0eCu4dCN2yonUJTCLU= +gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= +gonum.org/v1/gonum v0.11.0/go.mod h1:fSG4YDCxxUZQJ7rKsQrj0gMOg00Il0Z96/qMA4bVQhA= +gonum.org/v1/netlib v0.0.0-20181029234149-ec6d1f5cefe6/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= +gonum.org/v1/plot v0.0.0-20190515093506-e2840ee46a6b/go.mod h1:Wt8AAjI+ypCyYX3nZBvf6cAIx93T+c/OS2HFAYskSZc= +google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.25.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.42.0/go.mod h1:+Oj4s6ch2SEGtPjGqfUfZonBH0GjQH89gTeKKAEGZKI= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.55.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= +google.golang.org/api v0.57.0/go.mod h1:dVPlbZyBo2/OjBpmvNdpn2GRm6rPy75jyU7bmhdrMgI= +google.golang.org/api v0.58.0/go.mod h1:cAbP2FsxoGVNwtgNAmmn3y5G1TWAiVYRmg4yku3lv+E= +google.golang.org/api v0.59.0/go.mod h1:sT2boj7M9YJxZzgeZqXogmhfmRWDtPzT31xkieUbuZU= +google.golang.org/api v0.61.0/go.mod h1:xQRti5UdCmoCEqFxcz93fTl338AVqDgyaDRuOZ3hg9I= +google.golang.org/api v0.62.0/go.mod h1:dKmwPCydfsad4qCH08MSdgWjfHOyfpd4VtDGgRFdavw= +google.golang.org/api v0.63.0/go.mod h1:gs4ij2ffTRXwuzzgJl/56BdwJaA194ijkfn++9tDuPo= +google.golang.org/api v0.66.0/go.mod h1:I1dmXYpX7HGwz/ejRxwQp2qj5bFAz93HiCU1C1oYd9M= +google.golang.org/api v0.67.0/go.mod h1:ShHKP8E60yPsKNw/w8w+VYaj9H6buA5UqDp8dhbQZ6g= +google.golang.org/api v0.68.0/go.mod h1:sOM8pTpwgflXRhz+oC8H2Dr+UcbMqkPPWNJo88Q7TH8= +google.golang.org/api v0.70.0/go.mod h1:Bs4ZM2HGifEvXwd50TtW70ovgJffJYw2oRCOFU/SkfA= +google.golang.org/api v0.71.0/go.mod h1:4PyU6e6JogV1f9eA4voyrTY2batOLdgZ5qZ5HOCc4j8= +google.golang.org/api v0.74.0 h1:ExR2D+5TYIrMphWgs5JCgwRhEDlPDXXrLwHHMgPHTXE= +google.golang.org/api v0.74.0/go.mod h1:ZpfMZOVRMywNyvJFeqL9HRWBgAuRfSjJFpe9QtRRyDs= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190716160619-c506a9f90610/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20190927181202-20e1ac93f88c/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200108215221-bd8f9a0ef82f/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200528110217-3d3490e7e671/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200605102947-12044bf5ea91/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200726014623-da3ae01ef02d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210312152112-fc591d9ea70f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210721163202-f1cecdd8b78a/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210722135532-667f2b7c528f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210903162649-d08c68adba83/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210909211513-a8c4777a87af/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210917145530-b395a37504d4/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210921142501-181ce0d877f6/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20210924002016-3dee208752a0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211008145708-270636b82663/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211018162055-cf77aa76bad2/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211028162531-8db9c33dc351/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211129164237-f09f9a12af12/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211203200212-54befc351ae9/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211206160659-862468c7d6e0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211221195035-429b39de9b1c/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220114231437-d2e6a121cae0/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220126215142-9970aeb2e350/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220201184016-50beb8ab5c44/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220204002441-d6cc3cc0770e/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207164111-0872dc986b00/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220207185906-7721543eae58/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220218161850-94dd64e39d7c/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222154240-daf995802d7b/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220222213610-43724f9ea8cf/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220304144024-325a89244dc8/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb h1:0m9wktIpOxGw+SSKmydXWB3Z3GTfcPP6+q75HCQa6HI= +google.golang.org/genproto v0.0.0-20220324131243-acbaeb5b85eb/go.mod h1:hAL49I2IFola2sVEjAn7MEwsja0xp51I0tlGAf9hz4E= +google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.39.1/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.40.1/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +gopkg.in/DataDog/dd-trace-go.v1 v1.37.1 h1:rgO9oC3Mr7es0zKIsaooL50UY0qboUDdueP7MzH1fUI= +gopkg.in/DataDog/dd-trace-go.v1 v1.37.1/go.mod h1:HMpV5TQ38YAfRJ8OlM7UfLyGg6D01MPNHRFwsnrGMB0= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/alexcesaro/statsd.v2 v2.0.0 h1:FXkZSCZIH17vLCO5sO2UucTHsH9pc+17F6pl3JVCwMc= +gopkg.in/alexcesaro/statsd.v2 v2.0.0/go.mod h1:i0ubccKGzBVNBpdGV5MocxyA/XlLUJzA7SLonnE4drU= +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-20141024133853-64131543e789/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-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/fsnotify/fsnotify.v1 v1.4.7/go.mod h1:Fyux9zXlo4rWoMSIzpn9fDAYjalPqJ/K1qJ27s+7ltE= +gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= +gopkg.in/go-playground/validator.v9 v9.29.1/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +gopkg.in/inconshreveable/log15.v2 v2.0.0-20180818164646-67afb5ed74ec/go.mod h1:aPpfJ7XW+gOuirDoZ8gHhLh3kZ1B08FtV2bbmy7Jv3s= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.52.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo= +gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q= +gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4= +gopkg.in/jcmturner/gokrb5.v7 v7.2.3/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM= +gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8= +gopkg.in/jinzhu/gorm.v1 v1.9.1/go.mod h1:56JJPUzbikvTVnoyP1nppSkbJ2L8sunqTBDY2fDrmFg= +gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/olivere/elastic.v3 v3.0.75/go.mod h1:yDEuSnrM51Pc8dM5ov7U8aI/ToR3PG0llA8aRv2qmw0= +gopkg.in/olivere/elastic.v5 v5.0.84/go.mod h1:LXF6q9XNBxpMqrcgax95C6xyARXWbbCXUrtTxrNrxJI= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +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= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/zorkian/go-datadog-api.v2 v2.30.0 h1:umQdVO0Ytx+kYadhuJNjFtDgIsIEBnKrOTvNuu8ClKI= +gopkg.in/zorkian/go-datadog-api.v2 v2.30.0/go.mod h1:kx0CSMRpzEZfx/nFH62GLU4stZjparh/BRpM89t4XCQ= +gorm.io/driver/mysql v1.0.1/go.mod h1:KtqSthtg55lFp3S5kUXqlGaelnWpKitn4k1xZTnoiPw= +gorm.io/driver/postgres v1.0.0/go.mod h1:wtMFcOzmuA5QigNsgEIb7O5lhvH1tHAF1RbWmLWV4to= +gorm.io/driver/sqlserver v1.0.4/go.mod h1:ciEo5btfITTBCj9BkoUVDvgQbUdLWQNqdFY5OGuGnRg= +gorm.io/gorm v1.9.19/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gorm.io/gorm v1.20.0/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gorm.io/gorm v1.20.6/go.mod h1:0HFTzE/SqkGTzK6TlDPPQbAYCluiVvhzoA1+aVyzenw= +gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gotest.tools/v3 v3.1.0 h1:rVV8Tcg/8jHUkPUorwjaMTtemIMVXfIPKiOqnhEhakk= +honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.1.1/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +honnef.co/go/tools v0.1.2/go.mod h1:NgwopIslSNH47DimFoV78dnkksY2EFtX0ajyb3K/las= +honnef.co/go/tools v0.2.0/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= +honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY= +howett.net/plist v0.0.0-20181124034731-591f970eefbb h1:jhnBjNi9UFpfpl8YZhA9CrOqpnJdvzuiHsl/dnxl11M= +howett.net/plist v0.0.0-20181124034731-591f970eefbb/go.mod h1:vMygbs4qMhSZSc4lCUl2OEE+rDiIIJAIdR4m7MiMcm0= +k8s.io/api v0.17.0/go.mod h1:npsyOePkeP0CPwyGfXDHxvypiYMJxBWAMpQxCaJ4ZxI= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= +k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= +k8s.io/api v0.21.0/go.mod h1:+YbrhBBGgsxbF6o6Kj4KJPJnBmAKuXDeS3E18bgHNVU= +k8s.io/api v0.21.1/go.mod h1:FstGROTmsSHBarKc8bylzXih8BLNYTiS3TZcsoEDg2s= +k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= +k8s.io/api v0.22.7/go.mod h1:7hejA1BgBEiSsWljUyRkIjj+AISXO16IwsaDgFjJsQE= +k8s.io/api v0.23.5 h1:zno3LUiMubxD/V1Zw3ijyKO3wxrhbUF1Ck+VjBvfaoA= +k8s.io/api v0.23.5/go.mod h1:Na4XuKng8PXJ2JsploYYrivXrINeTaycCGcYgF91Xm8= +k8s.io/apimachinery v0.17.0/go.mod h1:b9qmWdKlLuU9EBh+06BtLcSf/Mu89rWL33naRxs1uZg= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= +k8s.io/apimachinery v0.21.0/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= +k8s.io/apimachinery v0.21.1/go.mod h1:jbreFvJo3ov9rj7eWT7+sYiRx+qZuCYXwWT1bcDswPY= +k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= +k8s.io/apimachinery v0.22.7/go.mod h1:ZvVLP5iLhwVFg2Yx9Gh5W0um0DUauExbRhe+2Z8I1EU= +k8s.io/apimachinery v0.23.5 h1:Va7dwhp8wgkUPWsEXk6XglXWU4IKYLKNlv8VkX7SDM0= +k8s.io/apimachinery v0.23.5/go.mod h1:BEuFMMBaIbcOqVIJqNZJXGFTP4W6AycEpb5+m/97hrM= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= +k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= +k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= +k8s.io/client-go v0.17.0/go.mod h1:TYgR6EUHs6k45hb6KWjVD6jFZvJV4gHDikv/It0xz+k= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= +k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= +k8s.io/client-go v0.21.0/go.mod h1:nNBytTF9qPFDEhoqgEPaarobC8QPae13bElIVHzIglA= +k8s.io/client-go v0.21.1/go.mod h1:/kEw4RgW+3xnBGzvp9IWxKSNA+lXn3A7AuH3gdOAzLs= +k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= +k8s.io/client-go v0.22.7/go.mod h1:pGU/tWSzzvsYT7M3npHhoZ3Jh9qJTTIvFvDtWuW31dw= +k8s.io/client-go v0.23.5 h1:zUXHmEuqx0RY4+CsnkOn5l0GU+skkRXKGJrhmE2SLd8= +k8s.io/client-go v0.23.5/go.mod h1:flkeinTO1CirYgzMPRWxUCnV0G4Fbu2vLhYCObnt/r4= +k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= +k8s.io/code-generator v0.21.1/go.mod h1:hUlps5+9QaTrKx+jiM4rmq7YmH8wPOIko64uZCHDh6Q= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= +k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= +k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= +k8s.io/component-base v0.23.5/go.mod h1:c5Nq44KZyt1aLl0IpHX82fhsn84Sb0jjzwjpcA42bY0= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= +k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= +k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20201214224949-b6c5ce23f027/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v0.3.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.8.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.40.1 h1:P4RRucWk/lFOlDdkAr3mc7iWFkgKrZY9qZMAgek06S4= +k8s.io/klog/v2 v2.40.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20191107075043-30be4d16710a/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kube-openapi v0.0.0-20210305001622-591a79e4bda7/go.mod h1:wXW5VT87nVfh/iLV8FpR2uDvrFyomxbtb1KivDbvPTE= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= +k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf h1:M9XBsiMslw2lb2ZzglC0TOkBPK5NQi0/noUrdnoFwUg= +k8s.io/kube-openapi v0.0.0-20220124234850-424119656bbf/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= +k8s.io/kubelet v0.23.5 h1:eCGJ7olStiyF7TYHlUTjpXg2ltw7Bs9OPZcch8HP2Go= +k8s.io/kubelet v0.23.5/go.mod h1:M0aj0gaX+rOaGfCfqkV6P7QbwtMwqbL6RdwviHmnehU= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/utils v0.0.0-20191114184206-e782cd3c129f/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20211116205334-6203023598ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 h1:HNSDgDCrr/6Ly3WEGKZftiE7IY19Vz2GdbOCyI4qqhc= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +mellium.im/sasl v0.2.1/go.mod h1:ROaEDLQNuf9vjKqE1SrAfnsobm2YKXT1gnN1uDp1PjQ= +mvdan.cc/gofumpt v0.1.0/go.mod h1:yXG1r1WqZVKWbVRtBWKWX9+CxGYfA51nSomhM0woR48= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20210104141923-aac4ce9116a7/go.mod h1:hBpJkZE8H/sb+VRFvw2+rBpHNsTBcvSpk61hr8mzXZE= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2 h1:kDi4JBNAsJWfz1aEXhO8Jg87JJaPNLh5tIzYHgStQ9Y= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/structured-merge-diff v0.0.0-20190525122527-15d366b2352e/go.mod h1:wWxsB5ozmmv/SG7nM11ayaAW51xMvak/t1r0CSlcokI= +sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.0/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.1 h1:bKCqE9GvQ5tiVHn5rfn1r+yao3aLQEaLzkkmAkf+A6Y= +sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +skywalking.apache.org/repo/goapi v0.0.0-20220121092418-9c455d0dda3f h1:i0cL/mhLt8xVO05SCKshkzWNUkXOkiW+zRIIuVWjPko= +skywalking.apache.org/repo/goapi v0.0.0-20220121092418-9c455d0dda3f/go.mod h1:4KrWd+Oi4lkB+PtxZgIlf+3T6EECPru4fOWNMEHjxRk= +sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= diff --git a/cmd/configschema/resolver.go b/cmd/configschema/resolver.go new file mode 100644 index 00000000..653e7836 --- /dev/null +++ b/cmd/configschema/resolver.go @@ -0,0 +1,142 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema // import "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/configschema" + +import ( + "fmt" + "go/build" + "os" + "path" + "reflect" + "strings" + + "golang.org/x/mod/modfile" +) + +// DefaultSrcRoot is the default root of the collector repo, relative to the +// current working directory. Can be used to create a DirResolver. +const DefaultSrcRoot = "." + +// DefaultModule is the module prefix of otelcol. Can be used to create a +// DirResolver. +const DefaultModule = "github.com/open-telemetry/opentelemetry-collector-contrib" + +// DirResolver is used to resolve the base directory of a given reflect.Type. +type DirResolver struct { + SrcRoot string + ModuleName string +} + +// NewDefaultDirResolver creates a DirResolver with a default SrcRoot and +// ModuleName, suitable for using this package's API using otelcol with an +// executable running from the otelcol's source root (not tests). +func NewDefaultDirResolver() DirResolver { + return NewDirResolver(DefaultSrcRoot, DefaultModule) +} + +// NewDirResolver creates a DirResolver with a custom SrcRoot and ModuleName. +// Useful for testing and for using this package's API from a repository other +// than otelcol (e.g. contrib). +func NewDirResolver(srcRoot string, moduleName string) DirResolver { + return DirResolver{ + SrcRoot: srcRoot, + ModuleName: moduleName, + } +} + +// PackageDir accepts a Type and returns its package dir. +// If package is not found locally, searches for package location through go.mod. +// Attempts to search through an absolute path or GOPATH +func (dr DirResolver) PackageDir(t reflect.Type) (string, error) { + pkg := strings.TrimPrefix(t.PkgPath(), dr.ModuleName+"/") + dir := dr.localPackageDir(pkg) + _, err := os.ReadDir(dir) + if err != nil { + if dir, err = dr.externalPackageDir(pkg); err != nil { + return "", fmt.Errorf("could not find the pkg %q: %w", pkg, err) + } + } + return dir, nil +} + +// localPackageDir returns the path to a local package. +func (dr DirResolver) localPackageDir(pkg string) string { + return path.Join(dr.SrcRoot, pkg) +} + +// externalPackageDir returns the path to an external package. +func (dr DirResolver) externalPackageDir(pkg string) (string, error) { + line, version, err := grepMod(path.Join(dr.SrcRoot, "go.mod"), pkg) + if err != nil { + return "", err + } + goPath := os.Getenv("GOPATH") + if goPath == "" { + goPath = build.Default.GOPATH + } + pkgPath := dr.buildExternalPath(goPath, pkg, line, version) + if _, err = os.ReadDir(pkgPath); err != nil { + return "", err + } + return pkgPath, nil +} + +// grepMod returns the line within go.mod associated with the package +// we are looking for. + +func grepMod(goModPath string, pkg string) (pkgPath string, version string, err error) { + file, err := os.ReadFile(goModPath) + if err != nil { + return "", "", err + } + modContents, err := modfile.Parse(goModPath, file, nil) + if err != nil { + return "", "", err + } + for _, line := range modContents.Replace { + switch { + case line.Old.Path == DefaultModule: + pkgPath, version = line.New.Path, line.New.Version + case strings.HasPrefix(pkg, line.Old.Path): + return line.New.Path, line.New.Version, nil + } + } + for _, line := range modContents.Require { + switch { + case pkgPath == "" && line.Mod.Path == DefaultModule: + pkgPath, version = line.Mod.Path, line.Mod.Version + case strings.HasPrefix(pkg, line.Mod.Path): + return line.Mod.Path, line.Mod.Version, nil + } + } + isDefaultModPkg := strings.Contains(pkg, DefaultModule) + if isDefaultModPkg && pkgPath != "" { + return pkgPath, version, nil + } + return "", "", fmt.Errorf("could not find package: %q", pkg) +} + +// buildExternalPath builds a path to a package that is not local to directory. +func (dr DirResolver) buildExternalPath(goPath, pkg, line, v string) string { + + switch { + case strings.HasPrefix(line, "./"): + return path.Join(dr.SrcRoot, line) + case strings.HasPrefix(line, "../"): + return path.Join(dr.SrcRoot, line, strings.TrimPrefix(pkg, DefaultModule)) + default: + return path.Join(goPath, "pkg", "mod", line+"@"+v, strings.TrimPrefix(pkg, line)) + } +} diff --git a/cmd/configschema/resolver_test.go b/cmd/configschema/resolver_test.go new file mode 100644 index 00000000..974d3332 --- /dev/null +++ b/cmd/configschema/resolver_test.go @@ -0,0 +1,80 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package configschema + +import ( + "fmt" + "go/build" + "os" + "path" + "reflect" + "testing" + + "github.com/stretchr/testify/assert" + "go.opentelemetry.io/collector/pdata/pmetric" + + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/resourcetotelemetry" +) + +func TestPackageDirLocal(t *testing.T) { + pkg := resourcetotelemetry.Settings{} + pkgValue := reflect.ValueOf(pkg) + dr := testDR("../..") + output, err := dr.PackageDir(pkgValue.Type()) + assert.NoError(t, err) + assert.Equal(t, "../../pkg/resourcetotelemetry", output) +} + +func TestPackageDirError(t *testing.T) { + pkg := pmetric.NewSum() + pkgType := reflect.ValueOf(pkg).Type() + srcRoot := "test/fail" + dr := NewDirResolver(srcRoot, DefaultModule) + output, err := dr.PackageDir(pkgType) + assert.Error(t, err) + assert.Equal(t, "", output) +} + +func TestExternalPkgDirErr(t *testing.T) { + pkg := "random/test" + pkgPath, err := testDR("../..").externalPackageDir(pkg) + if assert.Error(t, err) { + expected := fmt.Sprintf("could not find package: \"%s\"", pkg) + assert.EqualErrorf(t, err, expected, "") + } + assert.Equal(t, pkgPath, "") +} + +func TestExternalPkgDir(t *testing.T) { + dr := testDR("../..") + testPkg := "github.com/grpc-ecosystem/grpc-gateway/runtime" + pkgPath, err := dr.externalPackageDir(testPkg) + assert.NoError(t, err) + goPath := os.Getenv("GOPATH") + if goPath == "" { + goPath = build.Default.GOPATH + } + testLine, testVers, err := grepMod(path.Join(dr.SrcRoot, "go.mod"), testPkg) + assert.NoError(t, err) + expected := fmt.Sprint(path.Join(goPath, "pkg", "mod", testLine+"@"+testVers, "runtime")) + assert.Equal(t, expected, pkgPath) +} + +func TestExternalPkgDirReplace(t *testing.T) { + pkg := DefaultModule + "/pkg/resourcetotelemetry" + pkgPath, err := testDR("../..").externalPackageDir(pkg) + assert.NoError(t, err) + assert.Equal(t, "../../pkg/resourcetotelemetry", pkgPath) +} diff --git a/cmd/mdatagen/Makefile b/cmd/mdatagen/Makefile new file mode 100644 index 00000000..ded7a360 --- /dev/null +++ b/cmd/mdatagen/Makefile @@ -0,0 +1 @@ +include ../../Makefile.Common diff --git a/cmd/mdatagen/README.md b/cmd/mdatagen/README.md new file mode 100644 index 00000000..e3fc2d2a --- /dev/null +++ b/cmd/mdatagen/README.md @@ -0,0 +1,19 @@ +# Metadata Generator + +Receivers can contain a `metadata.yaml` file that documents the metrics that may be emitted by the receiver. + +Current examples: + +* hostmetricsreceiver scrapers like the [cpuscraper](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/metadata.yaml) + +See [metric-metadata.yaml](metric-metadata.yaml) for file format documentation. + +If adding a new receiver a `codegen.go` file should also be added to trigger the generation. See below for details. + +## Build + +When `go generate` is run (it is run automatically in the make build targets) there are a few special build directives in `codegen.go` files: + +`make install-tools` results in `cmd/mdatagen` being installed to `GOBIN` + +[/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/codegen.go](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/codegen.go) runs `mdatagen` for the `hostmetricsreceiver` metadata.yaml which generates the [/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/internal/metadata](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver/internal/scraper/cpuscraper/internal/metadata) package which has Go files containing metric and label metadata. diff --git a/cmd/mdatagen/documentation.tmpl b/cmd/mdatagen/documentation.tmpl new file mode 100644 index 00000000..19e7c061 --- /dev/null +++ b/cmd/mdatagen/documentation.tmpl @@ -0,0 +1,45 @@ +[comment]: <> (Code generated by mdatagen. DO NOT EDIT.) + +# {{ .Name }} + +## Metrics + +These are the metrics available for this scraper. + +| Name | Description | Unit | Type | Attributes | +| ---- | ----------- | ---- | ---- | ---------- | +{{- range $metricName, $metricInfo := .Metrics }} +| {{ if $metricInfo.IsEnabled }}**{{ end }}{{ $metricName }}{{ if $metricInfo.IsEnabled }}** +{{- end }} | {{ $metricInfo.Description }}{{ if $metricInfo.ExtendedDocumentation }} {{ $metricInfo.ExtendedDocumentation }}{{ end }} | {{ $metricInfo.Unit }} | {{ $metricInfo.Data.Type }} +{{- if $metricInfo.Data.HasMetricValueType }}({{ $metricInfo.Data.MetricValueType }}){{- end }} |
    +{{- range $index, $attributeName := $metricInfo.Attributes }}
  • {{ $attributeName }}
  • {{- end }}
| +{{- end }} + +**Highlighted metrics** are emitted by default.{{ if .ExpGen }} Other metrics are optional and not emitted by default. +Any metric can be enabled or disabled with the following scraper configuration: + +```yaml +metrics: + : + enabled: +``` +{{- end }} + +{{- if .ResourceAttributes }} + +## Resource attributes + +| Name | Description | Type | +| ---- | ----------- | ---- | +{{- range $attributeName, $attributeInfo := .ResourceAttributes }} +| {{ $attributeName }} | {{ $attributeInfo.Description }} | {{ $attributeInfo.Type }} | +{{- end }} +{{- end }} + +## Metric attributes + +| Name | Description | Values | +| ---- | ----------- | ------ | +{{- range $attributeName, $attributeInfo := .Attributes }} +| {{ $attributeName }}{{- if $attributeInfo.Value }} ({{ $attributeInfo.Value }}){{- end}} | {{ $attributeInfo.Description }} | {{ stringsJoin $attributeInfo.Enum ", " }} | +{{- end }} diff --git a/cmd/mdatagen/go.mod b/cmd/mdatagen/go.mod new file mode 100644 index 00000000..57192f0c --- /dev/null +++ b/cmd/mdatagen/go.mod @@ -0,0 +1,34 @@ +module github.com/open-telemetry/opentelemetry-collector-contrib/cmd/mdatagen + +go 1.17 + +require ( + github.com/go-playground/locales v0.14.0 + github.com/go-playground/universal-translator v0.18.0 + github.com/go-playground/validator/v10 v10.10.1 + github.com/stretchr/testify v1.7.1 + go.opentelemetry.io/collector v0.49.0 + go.opentelemetry.io/collector/pdata v0.49.0 +) + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/fsnotify/fsnotify v1.5.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/knadh/koanf v1.4.1 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/mapstructure v1.4.3 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/pelletier/go-toml v1.9.4 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + go.uber.org/atomic v1.9.0 // indirect + go.uber.org/multierr v1.8.0 // indirect + go.uber.org/zap v1.21.0 // indirect + golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 // indirect + golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27 // indirect + golang.org/x/text v0.3.7 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect +) diff --git a/cmd/mdatagen/go.sum b/cmd/mdatagen/go.sum new file mode 100644 index 00000000..19943518 --- /dev/null +++ b/cmd/mdatagen/go.sum @@ -0,0 +1,244 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/aws/aws-sdk-go-v2 v1.9.2/go.mod h1:cK/D0BBs0b/oWPIcX/Z/obahJK1TT7IPVjy53i/mX/4= +github.com/aws/aws-sdk-go-v2/config v1.8.3/go.mod h1:4AEiLtAb8kLs7vgw2ZV3p2VZ1+hBavOc84hqxVNpCyw= +github.com/aws/aws-sdk-go-v2/credentials v1.4.3/go.mod h1:FNNC6nQZQUuyhq5aE5c7ata8o9e4ECGmS4lAXC7o1mQ= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.6.0/go.mod h1:gqlclDEZp4aqJOancXK6TN24aKhT0W0Ae9MHk3wzTMM= +github.com/aws/aws-sdk-go-v2/internal/ini v1.2.4/go.mod h1:ZcBrrI3zBKlhGFNYWvju0I3TR93I7YIgAfy82Fh4lcQ= +github.com/aws/aws-sdk-go-v2/service/appconfig v1.4.2/go.mod h1:FZ3HkCe+b10uFZZkFdvf98LHW21k49W8o8J366lqVKY= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.3.2/go.mod h1:72HRZDLMtmVQiLG2tLfQcaWLCssELvGl+Zf2WVxMmR8= +github.com/aws/aws-sdk-go-v2/service/sso v1.4.2/go.mod h1:NBvT9R1MEF+Ud6ApJKM0G+IkPchKS7p7c2YPKwHmBOk= +github.com/aws/aws-sdk-go-v2/service/sts v1.7.2/go.mod h1:8EzeIqfWt2wWT4rJVu3f21TfrhJ8AEMzVybRNSb/b4g= +github.com/aws/smithy-go v1.8.0/go.mod h1:SObp3lf9smib00L/v3U2eAKG8FyQ7iLrJnQiAmR5n+E= +github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +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= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= +github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= +github.com/go-playground/locales v0.14.0/go.mod h1:sawfccIbzZTqEDETgFXqTho0QybSa7l++s0DH+LDiLs= +github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= +github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA= +github.com/go-playground/validator/v10 v10.10.1 h1:uA0+amWMiglNZKZ9FJRKUAe9U3RX91eVn1JYXMWt7ig= +github.com/go-playground/validator/v10 v10.10.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU= +github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +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= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= +github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v1.0.1/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY= +github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjGlgmH/UkBUC97A= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/vault/api v1.0.4/go.mod h1:gDcqh3WGcR1cpF5AJz/B1UFheUEneMoIospckxBxk6Q= +github.com/hashicorp/vault/sdk v0.1.13/go.mod h1:B+hVj7TpuQY1Y/GPbCpffmgd+tSEwvhkWnjtSYCaS2M= +github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/knadh/koanf v1.4.1 h1:Z0VGW/uo8NJmjd+L1Dc3S5frq6c62w5xQ9Yf4Mg3wFQ= +github.com/knadh/koanf v1.4.1/go.mod h1:1cfH5223ZeZUOs8FU2UdTmaNfHpqgtjV0+NHjRO43gs= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/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/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= +github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.4.3 h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= +github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/npillmayer/nestext v0.1.3/go.mod h1:h2lrijH8jpicr25dFY+oAJLyzlya6jhnuG+zWp9L0Uk= +github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= +github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/rhnvrm/simples3 v0.6.1/go.mod h1:Y+3vYm2V7Y4VijFoJHHTrja6OgPrJ2cBti8dPGkC3sA= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +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= +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= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opentelemetry.io/collector v0.49.0 h1:brKMIUwlL1bt0Faxqqxvj7549KWm9FEN77Z4i4RAlDE= +go.opentelemetry.io/collector v0.49.0/go.mod h1:ErYGC1VzzrpK/uM134DJIbARX3jl9vtTqgIXsiWxjGE= +go.opentelemetry.io/collector/pdata v0.49.0 h1:aYj5rOlRC0x7lGXbc185LMsMMoY/pjOTXr5s1O2SzXs= +go.opentelemetry.io/collector/pdata v0.49.0/go.mod h1:YwmKuiFhNgtmhRdpi8Q8FAWPa0AwJTCSlssSsAtuRcY= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.1.11/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.8.0 h1:dg6GjLku4EH+249NNmoIciG9N/jURbDG+pFlTkhzIC8= +go.uber.org/multierr v1.8.0/go.mod h1:7EAYxJLBy9rStEaz58O2t4Uvip6FSURkq8/ppBp95ak= +go.uber.org/zap v1.21.0 h1:WefMeulhovoZ2sYXz7st6K0sLj7bBhpiFaud4r4zST8= +go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3 h1:0es+/5331RGQPcXlMfP+WrnIIS6dNnNRe0WB02W0F4M= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190129075346-302c3dd5f1cc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27 h1:XDXtA5hveEEV8JB2l7nhMTp3t3cHp9ZpwcdjqyEWLlo= +golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20181227161524-e6919f6577db/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.22.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +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-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +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.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/cmd/mdatagen/lint.go b/cmd/mdatagen/lint.go new file mode 100644 index 00000000..6b316503 --- /dev/null +++ b/cmd/mdatagen/lint.go @@ -0,0 +1,74 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "errors" + "strings" + "unicode" + + "github.com/open-telemetry/opentelemetry-collector-contrib/cmd/mdatagen/third_party/golint" +) + +// formatIdentifier variable in a go-safe way +func formatIdentifier(s string, exported bool) (string, error) { + if s == "" { + return "", errors.New("string cannot be empty") + } + // Convert various characters to . for strings.Title to operate on. + replace := strings.NewReplacer("_", ".", "-", ".", "<", ".", ">", ".", "/", ".", ":", ".") + str := replace.Replace(s) + str = strings.Title(str) + str = strings.ReplaceAll(str, ".", "") + + var word string + var output string + + // Fixup acronyms to make lint happy. + for idx, r := range str { + if idx == 0 { + if exported { + r = unicode.ToUpper(r) + } else { + r = unicode.ToLower(r) + } + } + + if unicode.IsUpper(r) || unicode.IsNumber(r) { + // If the current word is an acronym and it's either exported or it's not the + // beginning of an unexported variable then upper case it. + if golint.Acronyms[strings.ToUpper(word)] && (exported || output != "") { + output += strings.ToUpper(word) + word = string(r) + } else { + output += word + word = string(r) + } + } else { + word += string(r) + } + } + + if golint.Acronyms[strings.ToUpper(word)] && output != "" { + output += strings.ToUpper(word) + } else { + output += word + } + + // Remove white spaces + output = strings.Join(strings.Fields(output), "") + + return output, nil +} diff --git a/cmd/mdatagen/lint_test.go b/cmd/mdatagen/lint_test.go new file mode 100644 index 00000000..a06abf22 --- /dev/null +++ b/cmd/mdatagen/lint_test.go @@ -0,0 +1,61 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func Test_formatIdentifier(t *testing.T) { + var tests = []struct { + input string + want string + exported bool + wantErr string + }{ + // Unexported. + {input: "max.cpu", want: "maxCPU"}, + {input: "max.foo", want: "maxFoo"}, + {input: "cpu.utilization", want: "cpuUtilization"}, + {input: "cpu", want: "cpu"}, + {input: "max.ip.addr", want: "maxIPAddr"}, + {input: "some_metric", want: "someMetric"}, + {input: "some-metric", want: "someMetric"}, + {input: "Upper.Case", want: "upperCase"}, + {input: "max.ip6", want: "maxIP6"}, + {input: "max.ip6.idle", want: "maxIP6Idle"}, + {input: "node_netstat_IpExt_OutOctets", want: "nodeNetstatIPExtOutOctets"}, + + // Exported. + {input: "cpu.state", want: "CPUState", exported: true}, + + // Errors + {input: "", want: "", wantErr: "string cannot be empty"}, + } + for _, tt := range tests { + t.Run(tt.input, func(t *testing.T) { + got, err := formatIdentifier(tt.input, tt.exported) + + if tt.wantErr != "" { + require.EqualError(t, err, tt.wantErr) + } else { + require.NoError(t, err) + require.Equal(t, tt.want, got) + } + }) + } +} diff --git a/cmd/mdatagen/loader.go b/cmd/mdatagen/loader.go new file mode 100644 index 00000000..3d7a7dcb --- /dev/null +++ b/cmd/mdatagen/loader.go @@ -0,0 +1,277 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "context" + "errors" + "fmt" + "strings" + + "github.com/go-playground/locales/en" + ut "github.com/go-playground/universal-translator" + "github.com/go-playground/validator/v10" + "github.com/go-playground/validator/v10/non-standard/validators" + en_translations "github.com/go-playground/validator/v10/translations/en" + "go.opentelemetry.io/collector/config/mapprovider/filemapprovider" + "go.opentelemetry.io/collector/pdata/pcommon" +) + +type metricName string + +func (mn metricName) Render() (string, error) { + return formatIdentifier(string(mn), true) +} + +func (mn metricName) RenderUnexported() (string, error) { + return formatIdentifier(string(mn), false) +} + +type attributeName string + +func (mn attributeName) Render() (string, error) { + return formatIdentifier(string(mn), true) +} + +func (mn attributeName) RenderUnexported() (string, error) { + return formatIdentifier(string(mn), false) +} + +// ValueType defines an attribute value type. +type ValueType struct { + // ValueType is type of the metric number, options are "double", "int". + ValueType pcommon.ValueType +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface. +func (mvt *ValueType) UnmarshalText(text []byte) error { + switch vtStr := string(text); vtStr { + case "": + mvt.ValueType = pcommon.ValueTypeEmpty + case "string": + mvt.ValueType = pcommon.ValueTypeString + case "int": + mvt.ValueType = pcommon.ValueTypeInt + case "double": + mvt.ValueType = pcommon.ValueTypeDouble + case "bool": + mvt.ValueType = pcommon.ValueTypeDouble + case "bytes": + mvt.ValueType = pcommon.ValueTypeDouble + default: + return fmt.Errorf("invalid type: %q", vtStr) + } + return nil +} + +// String returns capitalized name of the ValueType. +func (mvt ValueType) String() string { + return strings.Title(strings.ToLower(mvt.ValueType.String())) +} + +// Primitive returns name of primitive type for the ValueType. +func (mvt ValueType) Primitive() string { + switch mvt.ValueType { + case pcommon.ValueTypeString: + return "string" + case pcommon.ValueTypeInt: + return "int64" + case pcommon.ValueTypeDouble: + return "float64" + case pcommon.ValueTypeBool: + return "bool" + case pcommon.ValueTypeBytes: + return "[]byte" + default: + return "" + } +} + +type metric struct { + // Enabled defines whether the metric is enabled by default. + Enabled *bool `yaml:"enabled" validate:"required"` + + // Description of the metric. + Description string `validate:"required,notblank"` + + // ExtendedDocumentation of the metric. If specified, this will + // be appended to the description used in generated documentation. + ExtendedDocumentation string `mapstructure:"extended_documentation"` + + // Unit of the metric. + Unit string `mapstructure:"unit"` + + // Sum stores metadata for sum metric type + Sum *sum `yaml:"sum"` + // Gauge stores metadata for gauge metric type + Gauge *gauge `yaml:"gauge"` + // Histogram stores metadata for histogram metric type + Histogram *histogram `yaml:"histogram"` + + // Attributes is the list of attributes that the metric emits. + Attributes []attributeName +} + +func (m metric) Data() MetricData { + if m.Sum != nil { + return m.Sum + } + if m.Gauge != nil { + return m.Gauge + } + if m.Histogram != nil { + return m.Histogram + } + return nil +} + +func (m metric) IsEnabled() bool { + return *m.Enabled +} + +type attribute struct { + // Description describes the purpose of the attribute. + Description string `validate:"notblank"` + // Value can optionally specify the value this attribute will have. + // For example, the attribute may have the identifier `MemState` to its + // value may be `state` when used. + Value string + // Enum can optionally describe the set of values to which the attribute can belong. + Enum []string + // Type is an attribute type. + Type ValueType `mapstructure:"type"` +} + +type metadata struct { + // Name of the component. + Name string `validate:"notblank"` + // SemConvVersion is a version number of OpenTelemetry semantic conventions applied to the scraped metrics. + SemConvVersion string `mapstructure:"sem_conv_version"` + // ResourceAttributes that can be emitted by the component. + ResourceAttributes map[attributeName]attribute `mapstructure:"resource_attributes" validate:"dive"` + // Attributes emitted by one or more metrics. + Attributes map[attributeName]attribute `validate:"dive"` + // Metrics that can be emitted by the component. + Metrics map[metricName]metric `validate:"dive"` +} + +type templateContext struct { + metadata + // Package name for generated code. + Package string + // ExpGen identifies whether the experimental metrics generator is used. + // TODO: Remove once the old mdata generator is gone. + ExpGen bool +} + +func loadMetadata(filePath string) (metadata, error) { + cp, err := filemapprovider.New().Retrieve(context.Background(), "file:"+filePath, nil) + if err != nil { + return metadata{}, err + } + + var md metadata + if err := cp.Map.UnmarshalExact(&md); err != nil { + return metadata{}, err + } + + if err := validateMetadata(md); err != nil { + return md, err + } + + return md, nil +} + +func validateMetadata(out metadata) error { + v := validator.New() + if err := v.RegisterValidation("notblank", validators.NotBlank); err != nil { + return fmt.Errorf("failed registering notblank validator: %v", err) + } + + // Provides better validation error messages. + enLocale := en.New() + uni := ut.New(enLocale, enLocale) + + tr, ok := uni.GetTranslator("en") + if !ok { + return errors.New("unable to lookup en translator") + } + + if err := en_translations.RegisterDefaultTranslations(v, tr); err != nil { + return fmt.Errorf("failed registering translations: %v", err) + } + + if err := v.RegisterTranslation("nosuchattribute", tr, func(ut ut.Translator) error { + return ut.Add("nosuchattribute", "unknown attribute value", true) // see universal-translator for details + }, func(ut ut.Translator, fe validator.FieldError) string { + t, _ := ut.T("nosuchattribute", fe.Field()) + return t + }); err != nil { + return fmt.Errorf("failed registering nosuchattribute: %v", err) + } + + v.RegisterStructValidation(metricValidation, metric{}) + + if err := v.Struct(&out); err != nil { + if verr, ok := err.(validator.ValidationErrors); ok { + m := verr.Translate(tr) + buf := strings.Builder{} + buf.WriteString("error validating struct:\n") + for k, v := range m { + buf.WriteString(fmt.Sprintf("\t%v: %v\n", k, v)) + } + return errors.New(buf.String()) + } + return fmt.Errorf("unknown validation error: %v", err) + } + + // Set metric data interface. + for k, v := range out.Metrics { + dataTypesSet := 0 + if v.Sum != nil { + dataTypesSet++ + } + if v.Gauge != nil { + dataTypesSet++ + } + if v.Histogram != nil { + dataTypesSet++ + } + if dataTypesSet == 0 { + return fmt.Errorf("metric %v doesn't have a metric type key, "+ + "one of the following has to be specified: sum, gauge, histogram", k) + } + if dataTypesSet > 1 { + return fmt.Errorf("metric %v has more than one metric type keys, "+ + "only one of the following has to be specified: sum, gauge, histogram", k) + } + } + + return nil +} + +// metricValidation validates metric structs. +func metricValidation(sl validator.StructLevel) { + // Make sure that the attributes are valid. + md := sl.Top().Interface().(*metadata) + cur := sl.Current().Interface().(metric) + + for _, l := range cur.Attributes { + if _, ok := md.Attributes[l]; !ok { + sl.ReportError(cur.Attributes, fmt.Sprintf("Attributes[%s]", string(l)), "Attributes", "nosuchattribute", + "") + } + } +} diff --git a/cmd/mdatagen/loader_test.go b/cmd/mdatagen/loader_test.go new file mode 100644 index 00000000..e73e9873 --- /dev/null +++ b/cmd/mdatagen/loader_test.go @@ -0,0 +1,121 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" + "go.opentelemetry.io/collector/pdata/pmetric" +) + +func Test_loadMetadata(t *testing.T) { + tests := []struct { + name string + yml string + want metadata + wantErr string + }{ + { + name: "all options", + yml: "all_options.yaml", + want: metadata{ + Name: "metricreceiver", + SemConvVersion: "1.9.0", + Attributes: map[attributeName]attribute{ + "enumAttribute": { + Description: "Attribute with a known set of values.", + Value: "", + Enum: []string{"red", "green", "blue"}}, + "freeFormAttribute": { + Description: "Attribute that can take on any value.", + Value: ""}, + "freeFormAttributeWithValue": { + Description: "Attribute that has alternate value set.", + Value: "state"}}, + Metrics: map[metricName]metric{ + "system.cpu.time": { + Enabled: (func() *bool { t := true; return &t })(), + Description: "Total CPU seconds broken down by different states.", + ExtendedDocumentation: "Additional information on CPU Time can be found [here](https://en.wikipedia.org/wiki/CPU_time).", + Unit: "s", + Sum: &sum{ + MetricValueType: MetricValueType{pmetric.MetricValueTypeDouble}, + Aggregated: Aggregated{Aggregation: "cumulative"}, + Mono: Mono{Monotonic: true}, + }, + Attributes: []attributeName{"freeFormAttribute", "freeFormAttributeWithValue", "enumAttribute"}, + }, + "system.cpu.utilization": { + Enabled: (func() *bool { f := false; return &f })(), + Description: "Percentage of CPU time broken down by different states.", + Unit: "1", + Gauge: &gauge{ + MetricValueType: MetricValueType{pmetric.MetricValueTypeDouble}, + }, + Attributes: []attributeName{"enumAttribute"}, + }, + }, + }, + }, + { + name: "unknown metric attribute", + yml: "unknown_metric_attribute.yaml", + want: metadata{}, + wantErr: "error validating struct:\n\tmetadata.Metrics[system.cpu.time]." + + "Attributes[missing]: unknown attribute value\n", + }, + { + name: "no metric type", + yml: "no_metric_type.yaml", + want: metadata{}, + wantErr: "metric system.cpu.time doesn't have a metric type key, " + + "one of the following has to be specified: sum, gauge, histogram", + }, + { + name: "no enabled", + yml: "no_enabled.yaml", + want: metadata{}, + wantErr: "error validating struct:\n\tmetadata.Metrics[system.cpu.time].Enabled: Enabled is a required field\n", + }, + { + name: "two metric types", + yml: "two_metric_types.yaml", + want: metadata{}, + wantErr: "metric system.cpu.time has more than one metric type keys, " + + "only one of the following has to be specified: sum, gauge, histogram", + }, + { + name: "no number types", + yml: "no_value_type.yaml", + want: metadata{}, + wantErr: "error validating struct:\n\tmetadata.Metrics[system.cpu.time].Sum.MetricValueType.ValueType: " + + "ValueType is a required field\n", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := loadMetadata(filepath.Join("testdata", tt.yml)) + if tt.wantErr != "" { + require.Error(t, err) + require.EqualError(t, err, tt.wantErr) + } else { + require.NoError(t, err) + require.Equal(t, tt.want, got) + } + }) + } +} diff --git a/cmd/mdatagen/main.go b/cmd/mdatagen/main.go new file mode 100644 index 00000000..1a7be8d7 --- /dev/null +++ b/cmd/mdatagen/main.go @@ -0,0 +1,149 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "bytes" + "errors" + "flag" + "fmt" + "go/format" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "runtime" + "strings" + "text/template" +) + +const ( + tmplFileV1 = "metrics.tmpl" + outputFileV1 = "generated_metrics.go" + tmplFileV2 = "metrics_v2.tmpl" + outputFileV2 = "generated_metrics_v2.go" +) + +func main() { + useExpGen := flag.Bool("experimental-gen", false, "Use experimental generator") + flag.Parse() + yml := flag.Arg(0) + if err := run(yml, *useExpGen); err != nil { + log.Fatal(err) + } +} + +func run(ymlPath string, useExpGen bool) error { + if ymlPath == "" { + return errors.New("argument must be metadata.yaml file") + } + + ymlDir := path.Dir(ymlPath) + + md, err := loadMetadata(filepath.Clean(ymlPath)) + if err != nil { + return fmt.Errorf("failed loading %v: %v", ymlPath, err) + } + + _, filename, _, ok := runtime.Caller(0) + if !ok { + return errors.New("unable to determine filename") + } + thisDir := path.Dir(filename) + + if err = generateMetrics(ymlDir, thisDir, md, useExpGen); err != nil { + return err + } + return generateDocumentation(ymlDir, thisDir, md, useExpGen) +} + +func generateMetrics(ymlDir string, thisDir string, md metadata, useExpGen bool) error { + tmplFile := tmplFileV1 + outputFile := outputFileV1 + if useExpGen { + tmplFile = tmplFileV2 + outputFile = outputFileV2 + } + + tmpl := template.Must( + template. + New(tmplFile). + Option("missingkey=error"). + Funcs(map[string]interface{}{ + "publicVar": func(s string) (string, error) { + return formatIdentifier(s, true) + }, + }).ParseFiles(path.Join(thisDir, tmplFile))) + buf := bytes.Buffer{} + + if err := tmpl.Execute(&buf, templateContext{metadata: md, Package: "metadata"}); err != nil { + return fmt.Errorf("failed executing template: %v", err) + } + + formatted, err := format.Source(buf.Bytes()) + + if err != nil { + errstr := strings.Builder{} + _, _ = fmt.Fprintf(&errstr, "failed formatting source: %v", err) + errstr.WriteString("--- BEGIN SOURCE ---") + errstr.Write(buf.Bytes()) + errstr.WriteString("--- END SOURCE ---") + return errors.New(errstr.String()) + } + + outputDir := path.Join(ymlDir, "internal", "metadata") + if err := os.MkdirAll(outputDir, 0700); err != nil { + return fmt.Errorf("unable to create output directory %q: %v", outputDir, err) + } + for _, f := range []string{path.Join(outputDir, outputFileV1), path.Join(outputDir, outputFileV2)} { + if err := os.Remove(f); err != nil && !errors.Is(err, os.ErrNotExist) { + return fmt.Errorf("unable to remove genererated file %q: %v", f, err) + } + } + outputFilepath := path.Join(outputDir, outputFile) + if err := ioutil.WriteFile(outputFilepath, formatted, 0600); err != nil { + return fmt.Errorf("failed writing %q: %v", outputFilepath, err) + } + + return nil +} + +func generateDocumentation(ymlDir string, thisDir string, md metadata, useExpGen bool) error { + tmpl := template.Must( + template. + New("documentation.tmpl"). + Option("missingkey=error"). + Funcs(map[string]interface{}{ + "publicVar": func(s string) (string, error) { + return formatIdentifier(s, true) + }, + "stringsJoin": strings.Join, + }).ParseFiles(path.Join(thisDir, "documentation.tmpl"))) + + buf := bytes.Buffer{} + + tmplCtx := templateContext{metadata: md, ExpGen: useExpGen, Package: "metadata"} + if err := tmpl.Execute(&buf, tmplCtx); err != nil { + return fmt.Errorf("failed executing template: %v", err) + } + + outputFile := path.Join(ymlDir, "documentation.md") + if err := ioutil.WriteFile(outputFile, buf.Bytes(), 0600); err != nil { + return fmt.Errorf("failed writing %q: %v", outputFile, err) + } + + return nil +} diff --git a/cmd/mdatagen/main_test.go b/cmd/mdatagen/main_test.go new file mode 100644 index 00000000..5c9d8ff0 --- /dev/null +++ b/cmd/mdatagen/main_test.go @@ -0,0 +1,150 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "io/ioutil" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/require" +) + +const ( + validMetadata = ` +name: metricreceiver +attributes: + cpu_type: + value: type + description: The type of CPU consumption + enum: + - user + - io_wait + - system + host: + description: The type of CPU consumption +metrics: + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + extended_documentation: Additional information on CPU Time can be found [here](https://en.wikipedia.org/wiki/CPU_time). + unit: s + sum: + aggregation: cumulative + value_type: double + attributes: [host, cpu_type] +` +) + +func Test_runContents(t *testing.T) { + type args struct { + yml string + useExpGen bool + } + tests := []struct { + name string + args args + expectedDocumentation string + want string + wantErr string + }{ + { + name: "valid metadata", + args: args{validMetadata, false}, + expectedDocumentation: "testdata/documentation_v1.md", + want: "", + }, + { + name: "valid metadata v2", + args: args{validMetadata, true}, + expectedDocumentation: "testdata/documentation_v2.md", + want: "", + }, + { + name: "invalid yaml", + args: args{"invalid", false}, + want: "", + wantErr: "cannot unmarshal", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tmpdir, err := ioutil.TempDir("", "metadata-test-*") + require.NoError(t, err) + t.Cleanup(func() { + require.NoError(t, os.RemoveAll(tmpdir)) + }) + + metadataFile := filepath.Join(tmpdir, "metadata.yaml") + require.NoError(t, ioutil.WriteFile(metadataFile, []byte(tt.args.yml), 0600)) + + err = run(metadataFile, tt.args.useExpGen) + + if tt.wantErr != "" { + require.Regexp(t, tt.wantErr, err) + } else { + require.NoError(t, err) + + genFilePath := filepath.Join(tmpdir, "internal/metadata/generated_metrics.go") + if tt.args.useExpGen { + genFilePath = filepath.Join(tmpdir, "internal/metadata/generated_metrics_v2.go") + } + require.FileExists(t, genFilePath) + + actualDocumentation := filepath.Join(tmpdir, "documentation.md") + require.FileExists(t, actualDocumentation) + if tt.expectedDocumentation != "" { + expectedFileBytes, err := ioutil.ReadFile(tt.expectedDocumentation) + require.NoError(t, err) + + actualFileBytes, err := ioutil.ReadFile(actualDocumentation) + require.NoError(t, err) + + require.Equal(t, expectedFileBytes, actualFileBytes) + } + } + }) + } +} + +func Test_run(t *testing.T) { + type args struct { + ymlPath string + } + tests := []struct { + name string + args args + wantErr bool + }{ + { + name: "no argument", + args: args{""}, + wantErr: true, + }, + { + name: "no such file", + args: args{"/no/such/file"}, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if err := run(tt.args.ymlPath, false); (err != nil) != tt.wantErr { + t.Errorf("run() error = %v, wantErr %v", err, tt.wantErr) + } + }) + } +} diff --git a/cmd/mdatagen/metric-metadata.yaml b/cmd/mdatagen/metric-metadata.yaml new file mode 100644 index 00000000..2baa58a6 --- /dev/null +++ b/cmd/mdatagen/metric-metadata.yaml @@ -0,0 +1,50 @@ +# Required: name of the receiver. +name: + +# Optional: OTel Semantic Conventions version that will be associated with the scraped metrics. +# This attribute should be set for metrics compliant with OTel Semantic Conventions. +sem_conv_version: 1.9.0 + +# Optional: map of resource attribute definitions with the key being the attribute name. +resource_attributes: + : + # Required: description of the attribute. + description: + # Required: attribute type. + type: + +# Optional: map of attribute definitions with the key being the attribute name and value +# being described below. +attributes: + : + # Optional: if the attribute name as described by the key is not the actual attribute + # value to be reported that value can be overridden here. + value: + # Required: description of the attribute. + description: + # Optional: array of attribute values if they are static values. + enum: + +# Required: map of metric names with the key being the metric name and value +# being described below. +metrics: + : + # Required: whether the metric is collected by default. Takes effect only with "--experimental-gen" mdatagen flag. + enabled: # true | false + # Required: metric description. + description: + # Optional: extended documentation of the metric. + extended_documentation: + # Required: metric unit as defined by https://ucum.org/ucum.html. + unit: + # Required: metric type with its settings. + : + # Required for sum and gauge metrics: type of number data point values. + value_type: # int | double + # Required for sum metric: whether the metric is monotonic (no negative delta values). + monotonic: # true | false + # Required for sum and histogram metrics: whether reported values incorporate previous measurements + # (cumulative) or not (delta). + aggregation: # delta | cumulative + # Optional: array of attributes that were defined in the attributes section that are emitted by this metric. + attributes: diff --git a/cmd/mdatagen/metricdata.go b/cmd/mdatagen/metricdata.go new file mode 100644 index 00000000..47d0be60 --- /dev/null +++ b/cmd/mdatagen/metricdata.go @@ -0,0 +1,158 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "fmt" + + "go.opentelemetry.io/collector/pdata/pmetric" +) + +var ( + _ MetricData = &gauge{} + _ MetricData = &sum{} + _ MetricData = &histogram{} +) + +// MetricData is generic interface for all metric datatypes. +type MetricData interface { + Type() string + HasMonotonic() bool + HasAggregated() bool + HasMetricValueType() bool +} + +// Aggregated defines a metric aggregation type. +type Aggregated struct { + // Aggregation describes if the aggregator reports delta changes + // since last report time, or cumulative changes since a fixed start time. + Aggregation string `mapstructure:"aggregation" validate:"oneof=delta cumulative"` +} + +// Type gets the metric aggregation type. +func (agg Aggregated) Type() string { + switch agg.Aggregation { + case "delta": + return "pmetric.MetricAggregationTemporalityDelta" + case "cumulative": + return "pmetric.MetricAggregationTemporalityCumulative" + default: + return "pmetric.MetricAggregationTemporalityUnknown" + } +} + +// Mono defines the metric monotonicity. +type Mono struct { + // Monotonic is true if the sum is monotonic. + Monotonic bool `mapstructure:"monotonic"` +} + +// MetricValueType defines the metric number type. +type MetricValueType struct { + // ValueType is type of the metric number, options are "double", "int". + ValueType pmetric.MetricValueType `validate:"required"` +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface. +func (mvt *MetricValueType) UnmarshalText(text []byte) error { + switch vtStr := string(text); vtStr { + case "int": + mvt.ValueType = pmetric.MetricValueTypeInt + case "double": + mvt.ValueType = pmetric.MetricValueTypeDouble + default: + return fmt.Errorf("invalid value_type: %q", vtStr) + } + return nil +} + +// Type returns name of the datapoint type. +func (mvt MetricValueType) String() string { + return mvt.ValueType.String() +} + +// BasicType returns name of a golang basic type for the datapoint type. +func (mvt MetricValueType) BasicType() string { + switch mvt.ValueType { + case pmetric.MetricValueTypeInt: + return "int64" + case pmetric.MetricValueTypeDouble: + return "float64" + default: + return "" + } +} + +type gauge struct { + MetricValueType `mapstructure:"value_type"` +} + +func (d gauge) Type() string { + return "Gauge" +} + +func (d gauge) HasMonotonic() bool { + return false +} + +func (d gauge) HasAggregated() bool { + return false +} + +func (d gauge) HasMetricValueType() bool { + return true +} + +type sum struct { + Aggregated `mapstructure:",squash"` + Mono `mapstructure:",squash"` + MetricValueType `mapstructure:"value_type"` +} + +func (d sum) Type() string { + return "Sum" +} + +func (d sum) HasMonotonic() bool { + return true +} + +func (d sum) HasAggregated() bool { + return true +} + +func (d sum) HasMetricValueType() bool { + return true +} + +type histogram struct { + Aggregated `mapstructure:",squash"` +} + +func (d histogram) Type() string { + return "Histogram" +} + +func (d histogram) HasMonotonic() bool { + return false +} + +func (d histogram) HasAggregated() bool { + return true +} + +func (d histogram) HasMetricValueType() bool { + return false +} diff --git a/cmd/mdatagen/metricdata_test.go b/cmd/mdatagen/metricdata_test.go new file mode 100644 index 00000000..423f18ec --- /dev/null +++ b/cmd/mdatagen/metricdata_test.go @@ -0,0 +1,49 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestMetricData(t *testing.T) { + for _, arg := range []struct { + metricData MetricData + typ string + hasAggregated bool + hasMonotonic bool + }{ + {&gauge{}, "Gauge", false, false}, + {&sum{}, "Sum", true, true}, + {&histogram{}, "Histogram", true, false}, + } { + assert.Equal(t, arg.typ, arg.metricData.Type()) + assert.Equal(t, arg.hasAggregated, arg.metricData.HasAggregated()) + assert.Equal(t, arg.hasMonotonic, arg.metricData.HasMonotonic()) + } +} + +func TestAggregation(t *testing.T) { + delta := Aggregated{Aggregation: "delta"} + assert.Equal(t, "pmetric.MetricAggregationTemporalityDelta", delta.Type()) + + cumulative := Aggregated{Aggregation: "cumulative"} + assert.Equal(t, "pmetric.MetricAggregationTemporalityCumulative", cumulative.Type()) + + unknown := Aggregated{Aggregation: ""} + assert.Equal(t, "pmetric.MetricAggregationTemporalityUnknown", unknown.Type()) +} diff --git a/cmd/mdatagen/metrics.tmpl b/cmd/mdatagen/metrics.tmpl new file mode 100644 index 00000000..9cf57230 --- /dev/null +++ b/cmd/mdatagen/metrics.tmpl @@ -0,0 +1,130 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package {{ .Package }} + +import ( + "go.opentelemetry.io/collector/config" + "go.opentelemetry.io/collector/pdata/pmetric" +) + +// Type is the component type name. +const Type config.Type = "{{ .Name }}" + +// MetricIntf is an interface to generically interact with generated metric. +type MetricIntf interface { + Name() string + New() pmetric.Metric + Init(metric pmetric.Metric) +} + +// Intentionally not exposing this so that it is opaque and can change freely. +type metricImpl struct { + name string + initFunc func(pmetric.Metric) +} + +// Name returns the metric name. +func (m *metricImpl) Name() string { + return m.name +} + +// New creates a metric object preinitialized. +func (m *metricImpl) New() pmetric.Metric { + metric := pmetric.NewMetric() + m.Init(metric) + return metric +} + +// Init initializes the provided metric object. +func (m *metricImpl) Init(metric pmetric.Metric) { + m.initFunc(metric) +} + +type metricStruct struct { + {{- range $name, $metric := .Metrics }} + {{ $name.Render }} MetricIntf + {{- end }} +} + +// Names returns a list of all the metric name strings. +func (m *metricStruct) Names() []string { + return []string { + {{- range $name, $metric := .Metrics }} + "{{ $name }}", + {{- end }} + } +} + +var metricsByName = map[string]MetricIntf { +{{- range $name, $metric := .Metrics }} + "{{ $name }}": Metrics.{{ $name.Render }}, +{{- end }} +} + +func (m *metricStruct) ByName(n string) MetricIntf { + return metricsByName[n] +} + +{{- /* Renders metric descriptors. */}} +// Metrics contains a set of methods for each metric that help with +// manipulating those metrics. +var Metrics = &metricStruct{ + {{- range $name, $metric := .Metrics }} + &metricImpl{ + "{{ $name }}", + func(metric pmetric.Metric) { + metric.SetName("{{ $name }}") + metric.SetDescription("{{ $metric.Description }}") + metric.SetUnit("{{ $metric.Unit }}") + metric.SetDataType(pmetric.MetricDataType{{ $metric.Data.Type }}) + {{- if $metric.Data.HasMonotonic }} + metric.{{ $metric.Data.Type }}().SetIsMonotonic({{ $metric.Data.Monotonic }}) + {{- end }} + {{- if $metric.Data.HasAggregated }} + metric.{{ $metric.Data.Type }}().SetAggregationTemporality({{ $metric.Data.Aggregated.Type }}) + {{- end }} + }, + }, + {{- end }} +} + +// M contains a set of methods for each metric that help with +// manipulating those metrics. M is an alias for Metrics +var M = Metrics + +{{- /* Renders attribute names. */}} +// Attributes contains the possible metric attributes that can be used. +var Attributes = struct { + {{- range $name, $info := .Attributes }} + // {{ $name.Render }} ({{ $info.Description }}) + {{ $name.Render }} string + {{- end }} +}{ + {{- range $name, $info := .Attributes }} + {{- if $info.Value }} + "{{ $info.Value }}", + {{- else }} + "{{ $name }}", + {{- end }} + {{- end }} +} + +// A is an alias for Attributes. +var A = Attributes + +{{- /* Renders attribute enum values. */}} + +{{ range $name, $info := .Attributes }} +{{ if $info.Enum }} +// Attribute{{ $name.Render }} are the possible values that the attribute "{{ $name }}" can have. +var Attribute{{ $name.Render }} = struct { + {{- range $info.Enum }} + {{ . | publicVar }} string + {{- end }} +}{ + {{- range $info.Enum }} + "{{ . }}", + {{- end }} +} +{{- end }} +{{- end }} diff --git a/cmd/mdatagen/metrics_v2.tmpl b/cmd/mdatagen/metrics_v2.tmpl new file mode 100644 index 00000000..7fbf69c1 --- /dev/null +++ b/cmd/mdatagen/metrics_v2.tmpl @@ -0,0 +1,250 @@ +// Code generated by mdatagen. DO NOT EDIT. + +package {{ .Package }} + +import ( + "time" + + "go.opentelemetry.io/collector/pdata/pcommon" + "go.opentelemetry.io/collector/pdata/pmetric" + {{- if .SemConvVersion }} + conventions "go.opentelemetry.io/collector/model/semconv/v{{ .SemConvVersion }}" + {{- end }} +) + +// MetricSettings provides common settings for a particular metric. +type MetricSettings struct { + Enabled bool `mapstructure:"enabled"` +} + +// MetricsSettings provides settings for {{ .Name }} metrics. +type MetricsSettings struct { + {{- range $name, $metric := .Metrics }} + {{ $name.Render }} MetricSettings `mapstructure:"{{ $name }}"` + {{- end }} +} + +func DefaultMetricsSettings() MetricsSettings { + return MetricsSettings{ + {{- range $name, $metric := .Metrics }} + {{ $name.Render }}: MetricSettings{ + Enabled: {{ $metric.Enabled }}, + }, + {{- end }} + } +} + +{{ range $name, $metric := .Metrics -}} +type metric{{ $name.Render }} struct { + data pmetric.Metric // data buffer for generated metric. + settings MetricSettings // metric settings provided by user. + capacity int // max observed number of data points added to the metric. +} + +// init fills {{ $name }} metric with initial data. +func (m *metric{{ $name.Render }}) init() { + m.data.SetName("{{ $name }}") + m.data.SetDescription("{{ $metric.Description }}") + m.data.SetUnit("{{ $metric.Unit }}") + m.data.SetDataType(pmetric.MetricDataType{{ $metric.Data.Type }}) + {{- if $metric.Data.HasMonotonic }} + m.data.{{ $metric.Data.Type }}().SetIsMonotonic({{ $metric.Data.Monotonic }}) + {{- end }} + {{- if $metric.Data.HasAggregated }} + m.data.{{ $metric.Data.Type }}().SetAggregationTemporality({{ $metric.Data.Aggregated.Type }}) + {{- end }} + {{- if $metric.Attributes }} + m.data.{{ $metric.Data.Type }}().DataPoints().EnsureCapacity(m.capacity) + {{- end }} +} + +func (m *metric{{ $name.Render }}) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp +{{- if $metric.Data.HasMetricValueType }}, val {{ $metric.Data.MetricValueType.BasicType }}{{ end }} +{{- range $metric.Attributes -}}, {{ .RenderUnexported }}AttributeValue string {{ end }}) { + if !m.settings.Enabled { + return + } + dp := m.data.{{ $metric.Data.Type }}().DataPoints().AppendEmpty() + dp.SetStartTimestamp(start) + dp.SetTimestamp(ts) + {{- if $metric.Data.HasMetricValueType }} + dp.Set{{ $metric.Data.MetricValueType }}Val(val) + {{- end }} + {{- range $metric.Attributes }} + dp.Attributes().Insert(A.{{ .Render }}, pcommon.NewValueString({{ .RenderUnexported }}AttributeValue)) + {{- end }} +} + +// updateCapacity saves max length of data point slices that will be used for the slice capacity. +func (m *metric{{ $name.Render }}) updateCapacity() { + if m.data.{{ $metric.Data.Type }}().DataPoints().Len() > m.capacity { + m.capacity = m.data.{{ $metric.Data.Type }}().DataPoints().Len() + } +} + +// emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points. +func (m *metric{{ $name.Render }}) emit(metrics pmetric.MetricSlice) { + if m.settings.Enabled && m.data.{{ $metric.Data.Type }}().DataPoints().Len() > 0 { + m.updateCapacity() + m.data.MoveTo(metrics.AppendEmpty()) + m.init() + } +} + +func newMetric{{ $name.Render }}(settings MetricSettings) metric{{ $name.Render }} { + m := metric{{ $name.Render }}{settings: settings} + if settings.Enabled { + m.data = pmetric.NewMetric() + m.init() + } + return m +} + +{{ end -}} + +// MetricsBuilder provides an interface for scrapers to report metrics while taking care of all the transformations +// required to produce metric representation defined in metadata and user settings. +type MetricsBuilder struct { + startTime pcommon.Timestamp // start time that will be applied to all recorded data points. + metricsCapacity int // maximum observed number of metrics per resource. + resourceCapacity int // maximum observed number of resource attributes. + metricsBuffer pmetric.Metrics // accumulates metrics data before emitting. + {{- range $name, $metric := .Metrics }} + metric{{ $name.Render }} metric{{ $name.Render }} + {{- end }} +} + +// metricBuilderOption applies changes to default metrics builder. +type metricBuilderOption func(*MetricsBuilder) + +// WithStartTime sets startTime on the metrics builder. +func WithStartTime(startTime pcommon.Timestamp) metricBuilderOption { + return func(mb *MetricsBuilder) { + mb.startTime = startTime + } +} + +func NewMetricsBuilder(settings MetricsSettings, options ...metricBuilderOption) *MetricsBuilder { + mb := &MetricsBuilder{ + startTime: pcommon.NewTimestampFromTime(time.Now()), + metricsBuffer: pmetric.NewMetrics(), + {{- range $name, $metric := .Metrics }} + metric{{ $name.Render }}: newMetric{{ $name.Render }}(settings.{{ $name.Render }}), + {{- end }} + } + for _, op := range options { + op(mb) + } + return mb +} + +// updateCapacity updates max length of metrics and resource attributes that will be used for the slice capacity. +func (mb *MetricsBuilder) updateCapacity(rm pmetric.ResourceMetrics) { + if mb.metricsCapacity < rm.ScopeMetrics().At(0).Metrics().Len() { + mb.metricsCapacity = rm.ScopeMetrics().At(0).Metrics().Len() + } + if mb.resourceCapacity < rm.Resource().Attributes().Len() { + mb.resourceCapacity = rm.Resource().Attributes().Len() + } +} + +// ResourceOption applies changes to provided resource. +type ResourceOption func(pcommon.Resource) + +{{- range $name, $attr := .ResourceAttributes }} +// With{{ $name.Render }} sets provided value as "{{ $name }}" attribute for current resource. +func With{{ $name.Render }}(val {{ $attr.Type.Primitive }}) ResourceOption { + return func(r pcommon.Resource) { + r.Attributes().Upsert{{ $attr.Type }}("{{ $name }}", val) + } +} +{{ end }} + +// EmitForResource saves all the generated metrics under a new resource and updates the internal state to be ready for +// recording another set of data points as part of another resource. This function can be helpful when one scraper +// needs to emit metrics from several resources. Otherwise calling this function is not required, +// just `Emit` function can be called instead. Resource attributes should be provided as ResourceOption arguments. +func (mb *MetricsBuilder) EmitForResource(ro ...ResourceOption) { + rm := pmetric.NewResourceMetrics() + {{- if .SemConvVersion }} + rm.SetSchemaUrl(conventions.SchemaURL) + {{- end }} + rm.Resource().Attributes().EnsureCapacity(mb.resourceCapacity) + for _, op := range ro { + op(rm.Resource()) + } + ils := rm.ScopeMetrics().AppendEmpty() + ils.Scope().SetName("otelcol/{{ .Name }}") + ils.Metrics().EnsureCapacity(mb.metricsCapacity) + {{- range $name, $metric := .Metrics }} + mb.metric{{- $name.Render }}.emit(ils.Metrics()) + {{- end }} + if ils.Metrics().Len() > 0 { + mb.updateCapacity(rm) + rm.MoveTo(mb.metricsBuffer.ResourceMetrics().AppendEmpty()) + } +} + +// Emit returns all the metrics accumulated by the metrics builder and updates the internal state to be ready for +// recording another set of metrics. This function will be responsible for applying all the transformations required to +// produce metric representation defined in metadata and user settings, e.g. delta or cumulative. +func (mb *MetricsBuilder) Emit(ro ...ResourceOption) pmetric.Metrics { + mb.EmitForResource(ro...) + metrics := pmetric.NewMetrics() + mb.metricsBuffer.MoveTo(metrics) + return metrics +} + +{{ range $name, $metric := .Metrics -}} +// Record{{ $name.Render }}DataPoint adds a data point to {{ $name }} metric. +func (mb *MetricsBuilder) Record{{ $name.Render }}DataPoint(ts pcommon.Timestamp + {{- if $metric.Data.HasMetricValueType }}, val {{ $metric.Data.MetricValueType.BasicType }}{{ end }} + {{- range $metric.Attributes -}} , {{ .RenderUnexported }}AttributeValue string{{ end }}) { + mb.metric{{ $name.Render }}.recordDataPoint(mb.startTime, ts + {{- if $metric.Data.HasMetricValueType }}, val {{ end }} + {{- range $metric.Attributes -}} , {{ .RenderUnexported }}AttributeValue{{ end }}) +} +{{ end }} + +// Reset resets metrics builder to its initial state. It should be used when external metrics source is restarted, +// and metrics builder should update its startTime and reset it's internal state accordingly. +func (mb *MetricsBuilder) Reset(options ...metricBuilderOption) { + mb.startTime = pcommon.NewTimestampFromTime(time.Now()) + for _, op := range options { + op(mb) + } +} + +// Attributes contains the possible metric attributes that can be used. +var Attributes = struct { +{{- range $name, $info := .Attributes }} + // {{ $name.Render }} ({{ $info.Description }}) + {{ $name.Render }} string +{{- end }} +}{ +{{- range $name, $info := .Attributes }} + {{- if $info.Value }} + "{{ $info.Value }}", + {{- else }} + "{{ $name }}", + {{- end }} +{{- end }} +} + +// A is an alias for Attributes. +var A = Attributes + +{{ range $name, $info := .Attributes -}} +{{ if $info.Enum -}} +// Attribute{{ $name.Render }} are the possible values that the attribute "{{ $name }}" can have. +var Attribute{{ $name.Render }} = struct { +{{- range $info.Enum }} + {{ . | publicVar }} string +{{- end }} +}{ +{{- range $info.Enum }} + "{{ . }}", +{{- end }} +} +{{ end }} +{{ end }} diff --git a/cmd/mdatagen/testdata/all_options.yaml b/cmd/mdatagen/testdata/all_options.yaml new file mode 100644 index 00000000..d9405860 --- /dev/null +++ b/cmd/mdatagen/testdata/all_options.yaml @@ -0,0 +1,35 @@ +name: metricreceiver +sem_conv_version: 1.9.0 +attributes: + freeFormAttribute: + description: Attribute that can take on any value. + + freeFormAttributeWithValue: + value: state + description: Attribute that has alternate value set. + + enumAttribute: + description: Attribute with a known set of values. + enum: [red, green, blue] + +metrics: + # A metric enabled by default. + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + extended_documentation: Additional information on CPU Time can be found [here](https://en.wikipedia.org/wiki/CPU_time). + unit: s + sum: + value_type: double + monotonic: true + aggregation: cumulative + attributes: [freeFormAttribute, freeFormAttributeWithValue, enumAttribute] + + # An optional metric. + system.cpu.utilization: + enabled: false + description: Percentage of CPU time broken down by different states. + unit: 1 + gauge: + value_type: double + attributes: [enumAttribute] diff --git a/cmd/mdatagen/testdata/documentation_v1.md b/cmd/mdatagen/testdata/documentation_v1.md new file mode 100644 index 00000000..08b44839 --- /dev/null +++ b/cmd/mdatagen/testdata/documentation_v1.md @@ -0,0 +1,20 @@ +[comment]: <> (Code generated by mdatagen. DO NOT EDIT.) + +# metricreceiver + +## Metrics + +These are the metrics available for this scraper. + +| Name | Description | Unit | Type | Attributes | +| ---- | ----------- | ---- | ---- | ---------- | +| **system.cpu.time** | Total CPU seconds broken down by different states. Additional information on CPU Time can be found [here](https://en.wikipedia.org/wiki/CPU_time). | s | Sum(Double) |
  • host
  • cpu_type
| + +**Highlighted metrics** are emitted by default. + +## Metric attributes + +| Name | Description | Values | +| ---- | ----------- | ------ | +| cpu_type (type) | The type of CPU consumption | user, io_wait, system | +| host | The type of CPU consumption | | diff --git a/cmd/mdatagen/testdata/documentation_v2.md b/cmd/mdatagen/testdata/documentation_v2.md new file mode 100644 index 00000000..bbfefb6b --- /dev/null +++ b/cmd/mdatagen/testdata/documentation_v2.md @@ -0,0 +1,27 @@ +[comment]: <> (Code generated by mdatagen. DO NOT EDIT.) + +# metricreceiver + +## Metrics + +These are the metrics available for this scraper. + +| Name | Description | Unit | Type | Attributes | +| ---- | ----------- | ---- | ---- | ---------- | +| **system.cpu.time** | Total CPU seconds broken down by different states. Additional information on CPU Time can be found [here](https://en.wikipedia.org/wiki/CPU_time). | s | Sum(Double) |
  • host
  • cpu_type
| + +**Highlighted metrics** are emitted by default. Other metrics are optional and not emitted by default. +Any metric can be enabled or disabled with the following scraper configuration: + +```yaml +metrics: + : + enabled: +``` + +## Metric attributes + +| Name | Description | Values | +| ---- | ----------- | ------ | +| cpu_type (type) | The type of CPU consumption | user, io_wait, system | +| host | The type of CPU consumption | | diff --git a/cmd/mdatagen/testdata/no_enabled.yaml b/cmd/mdatagen/testdata/no_enabled.yaml new file mode 100644 index 00000000..5e377ab8 --- /dev/null +++ b/cmd/mdatagen/testdata/no_enabled.yaml @@ -0,0 +1,10 @@ +name: metricreceiver +metrics: + system.cpu.time: + description: Total CPU seconds broken down by different states. + unit: s + sum: + value_type: double + monotonic: true + aggregation: cumulative + attributes: diff --git a/cmd/mdatagen/testdata/no_metric_type.yaml b/cmd/mdatagen/testdata/no_metric_type.yaml new file mode 100644 index 00000000..49cde5fe --- /dev/null +++ b/cmd/mdatagen/testdata/no_metric_type.yaml @@ -0,0 +1,7 @@ +name: metricreceiver +metrics: + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + unit: s + attributes: diff --git a/cmd/mdatagen/testdata/no_value_type.yaml b/cmd/mdatagen/testdata/no_value_type.yaml new file mode 100644 index 00000000..4af184d4 --- /dev/null +++ b/cmd/mdatagen/testdata/no_value_type.yaml @@ -0,0 +1,10 @@ +name: metricreceiver +metrics: + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + unit: s + sum: + monotonic: true + aggregation: cumulative + attributes: diff --git a/cmd/mdatagen/testdata/two_metric_types.yaml b/cmd/mdatagen/testdata/two_metric_types.yaml new file mode 100644 index 00000000..913bce9d --- /dev/null +++ b/cmd/mdatagen/testdata/two_metric_types.yaml @@ -0,0 +1,13 @@ +name: metricreceiver +metrics: + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + unit: s + gauge: + value_type: double + sum: + value_type: double + monotonic: true + aggregation: cumulative + attributes: diff --git a/cmd/mdatagen/testdata/unknown_metric_attribute.yaml b/cmd/mdatagen/testdata/unknown_metric_attribute.yaml new file mode 100644 index 00000000..8c922b64 --- /dev/null +++ b/cmd/mdatagen/testdata/unknown_metric_attribute.yaml @@ -0,0 +1,11 @@ +name: metricreceiver +metrics: + system.cpu.time: + enabled: true + description: Total CPU seconds broken down by different states. + unit: s + sum: + value_type: double + monotonic: true + aggregation: cumulative + attributes: [missing] diff --git a/cmd/mdatagen/third_party/golint/LICENSE b/cmd/mdatagen/third_party/golint/LICENSE new file mode 100644 index 00000000..65d761bc --- /dev/null +++ b/cmd/mdatagen/third_party/golint/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2013 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/cmd/mdatagen/third_party/golint/golint.go b/cmd/mdatagen/third_party/golint/golint.go new file mode 100644 index 00000000..f4898aae --- /dev/null +++ b/cmd/mdatagen/third_party/golint/golint.go @@ -0,0 +1,51 @@ +// Copyright (c) 2013 The Go Authors. All rights reserved. +// +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file or at +// https://developers.google.com/open-source/licenses/bsd. + +package golint + +// See https://github.com/golang/lint/blob/d0100b6bd8b389f0385611eb39152c4d7c3a7905/lint.go#L771 + +// Acronyms is a list of known acronyms that should not be formatted when linting. +var Acronyms = map[string]bool{ + "ACL": true, + "API": true, + "ASCII": true, + "CPU": true, + "CSS": true, + "DNS": true, + "EOF": true, + "GUID": true, + "HTML": true, + "HTTP": true, + "HTTPS": true, + "ID": true, + "IP": true, + "JSON": true, + "LHS": true, + "QPS": true, + "RAM": true, + "RHS": true, + "RPC": true, + "SLA": true, + "SMTP": true, + "SQL": true, + "SSH": true, + "TCP": true, + "TLS": true, + "TTL": true, + "UDP": true, + "UI": true, + "UID": true, + "UUID": true, + "URI": true, + "URL": true, + "UTF8": true, + "VM": true, + "XML": true, + "XMPP": true, + "XSRF": true, + "XSS": true, +} diff --git a/cmd/otelcontribcol/Dockerfile b/cmd/otelcontribcol/Dockerfile new file mode 100644 index 00000000..10b37eaf --- /dev/null +++ b/cmd/otelcontribcol/Dockerfile @@ -0,0 +1,15 @@ +FROM alpine:latest as prep +RUN apk --update add ca-certificates + +RUN mkdir -p /tmp + +FROM scratch + +ARG USER_UID=10001 +USER ${USER_UID} + +COPY --from=prep /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt +COPY otelcontribcol / +EXPOSE 4317 55680 55679 +ENTRYPOINT ["/otelcontribcol"] +CMD ["--config", "/etc/otel/config.yaml"] diff --git a/cmd/otelcontribcol/main.go b/cmd/otelcontribcol/main.go new file mode 100644 index 00000000..cc12d1c8 --- /dev/null +++ b/cmd/otelcontribcol/main.go @@ -0,0 +1,55 @@ +// Copyright 2019 OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Program otelcontribcol is an extension to the OpenTelemetry Collector +// that includes additional components, some vendor-specific, contributed +// from the wider community. +package main + +import ( + "fmt" + "log" + + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/service" + + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/components" + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/version" +) + +func main() { + factories, err := components.Components() + if err != nil { + log.Fatalf("failed to build components: %v", err) + } + + info := component.BuildInfo{ + Command: "otelcontribcol", + Description: "OpenTelemetry Collector Contrib", + Version: version.Version, + } + + if err = run(service.CollectorSettings{BuildInfo: info, Factories: factories}); err != nil { + log.Fatal(err) + } +} + +func runInteractive(params service.CollectorSettings) error { + cmd := service.NewCommand(params) + if err := cmd.Execute(); err != nil { + return fmt.Errorf("collector server run finished with error: %w", err) + } + + return nil +} diff --git a/cmd/otelcontribcol/main_others.go b/cmd/otelcontribcol/main_others.go new file mode 100644 index 00000000..b08d109a --- /dev/null +++ b/cmd/otelcontribcol/main_others.go @@ -0,0 +1,24 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !windows +// +build !windows + +package main + +import "go.opentelemetry.io/collector/service" + +func run(params service.CollectorSettings) error { + return runInteractive(params) +} diff --git a/cmd/otelcontribcol/main_windows.go b/cmd/otelcontribcol/main_windows.go new file mode 100644 index 00000000..020ff080 --- /dev/null +++ b/cmd/otelcontribcol/main_windows.go @@ -0,0 +1,61 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build windows +// +build windows + +package main + +import ( + "fmt" + "os" + + "go.opentelemetry.io/collector/service" + "golang.org/x/sys/windows/svc" +) + +func run(params service.CollectorSettings) error { + if useInteractiveMode, err := checkUseInteractiveMode(); err != nil { + return err + } else if useInteractiveMode { + return runInteractive(params) + } else { + return runService(params) + } +} + +func checkUseInteractiveMode() (bool, error) { + // If environment variable NO_WINDOWS_SERVICE is set with any value other + // than 0, use interactive mode instead of running as a service. This should + // be set in case running as a service is not possible or desired even + // though the current session is not detected to be interactive + if value, present := os.LookupEnv("NO_WINDOWS_SERVICE"); present && value != "0" { + return true, nil + } + + if isInteractiveSession, err := svc.IsAnInteractiveSession(); err != nil { + return false, fmt.Errorf("failed to determine if we are running in an interactive session %w", err) + } else { + return isInteractiveSession, nil + } +} + +func runService(params service.CollectorSettings) error { + // do not need to supply service name when startup is invoked through Service Control Manager directly + if err := svc.Run("", service.NewWindowsService(params)); err != nil { + return fmt.Errorf("failed to start collector server: %w", err) + } + + return nil +} diff --git a/examples/demo/.env b/examples/demo/.env new file mode 100644 index 00000000..1f306cf6 --- /dev/null +++ b/examples/demo/.env @@ -0,0 +1,2 @@ +OTELCOL_IMG=otel/opentelemetry-collector-contrib-dev:latest +OTELCOL_ARGS= diff --git a/examples/demo/README.md b/examples/demo/README.md new file mode 100644 index 00000000..61d105f8 --- /dev/null +++ b/examples/demo/README.md @@ -0,0 +1,53 @@ +# OpenTelemetry Collector Demo + +*IMPORTANT:* This is a pre-released version of the OpenTelemetry Collector Contrib. + +This demo contains a client and server applications that use the +opentelemetry Go library for instrumentation and for sending telemetry data +to the opentelemetry collector. + +The client periodically makes http calls to the server which +create client spans, server spans and metrics that track information like +number of http requests and latency. + +This demo presents the typical flow of observability data with multiple +OpenTelemetry Collectors deployed: + +- The client and server send data directly to the OTel Collector; +- The OTel Collector then sends the data to the appropriate backend, in this demo + Jaeger, Zipkin, and Prometheus; + +This demo uses `docker-compose` and by default runs against the +`otel/opentelemetry-collector-contrib-dev:latest` image. To run the demo, switch +to the `examples/demo` folder and run: + +```shell +docker-compose up -d +``` + +The demo exposes the following backends: + +- Jaeger at http://0.0.0.0:16686 +- Zipkin at http://0.0.0.0:9411 +- Prometheus at http://0.0.0.0:9090 + +Notes: + +- It may take some time for the application metrics to appear on the Prometheus + dashboard; + +To clean up any docker container from the demo run `docker-compose down` from +the `examples/demo` folder. + +### Using a Locally Built Image +Developers interested in running a local build of the Collector need to build a +docker image using the command below: + +```shell +make docker-otelcol +``` + +And set an environment variable `OTELCOL_IMG` to `otelcol:latest` before +launching the command `docker-compose up -d`. + + diff --git a/examples/demo/client/Dockerfile b/examples/demo/client/Dockerfile new file mode 100644 index 00000000..4ffbb23c --- /dev/null +++ b/examples/demo/client/Dockerfile @@ -0,0 +1,19 @@ +# Copyright The OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM golang:1.17 +COPY . /usr/src/client/ +WORKDIR /usr/src/client/ +RUN go env -w GOPROXY=direct +RUN go install ./main.go +CMD ["/go/bin/main"] diff --git a/examples/demo/client/Makefile b/examples/demo/client/Makefile new file mode 100644 index 00000000..bdd863a2 --- /dev/null +++ b/examples/demo/client/Makefile @@ -0,0 +1 @@ +include ../../../Makefile.Common diff --git a/examples/demo/client/go.mod b/examples/demo/client/go.mod new file mode 100644 index 00000000..8acafe77 --- /dev/null +++ b/examples/demo/client/go.mod @@ -0,0 +1,34 @@ +module github.com/open-telemetry/opentelemetry-collector-contrib/examples/demo/client + +go 1.17 + +require ( + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 + go.opentelemetry.io/otel v1.6.3 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1 + go.opentelemetry.io/otel/metric v0.29.0 + go.opentelemetry.io/otel/sdk v1.6.3 + go.opentelemetry.io/otel/sdk/metric v0.29.0 + google.golang.org/grpc v1.45.0 +) + +require ( + github.com/cenkalti/backoff/v4 v4.1.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/felixge/httpsnoop v1.0.2 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3 // indirect + go.opentelemetry.io/otel/trace v1.6.3 // indirect + go.opentelemetry.io/proto/otlp v0.15.0 // indirect + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect + golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect + golang.org/x/text v0.3.5 // indirect + google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 // indirect + google.golang.org/protobuf v1.28.0 // indirect +) diff --git a/examples/demo/client/go.sum b/examples/demo/client/go.sum new file mode 100644 index 00000000..f4945e8d --- /dev/null +++ b/examples/demo/client/go.sum @@ -0,0 +1,471 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +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= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +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= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 h1:woM+Mb4d0A+Dxa3rYPenSN5ZeS9qHUvE8rlObiLRXTY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0/go.mod h1:PFmBsWbldL1kiWZk9+0LBZz2brhByaGsvp6pRICMlPE= +go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ= +go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ= +go.opentelemetry.io/otel v1.6.3 h1:FLOfo8f9JzFVFVyU+MSRJc2HdEAXQgm7pIv2uFKRSZE= +go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.1/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3 h1:nAmg1WgsUXoXf46dJG9eS/AzOcvkCTK4xJSUYpWyHYg= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0 h1:u6rq3Ho3wjjHFOOH+LVoYywFnUc0T95LZEkRsPGPt/4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0/go.mod h1:PKxLLBdoSnJ28ygFD38kzxBf439PM+udiEhdyogQaQU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0 h1:VDQWOrFLUHdtxRtsRIn6H4/sZqnrqZpJmHZhjMANMig= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0/go.mod h1:I4kweNROS+aomq5LYP2WFAhFH16RdFle5iAqrn1CUYQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.1/go.mod h1:YJ/JbY5ag/tSQFXzH3mtDmHqzF3aFn3DI/aB1n7pt4w= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3 h1:4/UjHWMVVc5VwX/KAtqJOHErKigMCH8NexChMuanb/o= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3/go.mod h1:UJmXdiVVBaZ63umRUTwJuCMAV//GCMvDiQwn703/GoY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1 h1:G45R6KdPgxe9UaZJMF4VUnsYgZpOHCSgl7FiOEV6570= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1/go.mod h1:UJJXJj0rltNIemDMwkOJyggsvyMG9QHfJeFH0HS5JjM= +go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw= +go.opentelemetry.io/otel/metric v0.29.0 h1:7unM/I13Dbc1VHw8lTPQ7zfNIgkhcb8BZhujXOS4jKc= +go.opentelemetry.io/otel/metric v0.29.0/go.mod h1:HahKFp1OC1RNTsuO/HNMBHHJR+dmHZ7wLARRgGDwjLQ= +go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E= +go.opentelemetry.io/otel/sdk v1.6.3 h1:prSHYdwCQOX5DrsEzxowH3nLhoAzEBdZhvrR79scfLs= +go.opentelemetry.io/otel/sdk v1.6.3/go.mod h1:A4iWF7HTXa+GWL/AaqESz28VuSBIcZ+0CV+IzJ5NMiQ= +go.opentelemetry.io/otel/sdk/metric v0.29.0 h1:OCEp2igPFXQrGxSR/nwd/bDjkPlPlOVjIULA/ob0dNw= +go.opentelemetry.io/otel/sdk/metric v0.29.0/go.mod h1:IFkFNKI8Gq8zBdqOKdODCL9+LInBZLXaGpqSIKphNuU= +go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE= +go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0= +go.opentelemetry.io/otel/trace v1.6.3 h1:IqN4L+5b0mPNjdXIiZ90Ni4Bl5BRkDQywePLWemd9bc= +go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.12.1/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.15.0 h1:h0bKrvdrT/9sBwEJ6iWUqT/N/xPcS66bL4u3isneJ6w= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 h1:b9mVrqYfq3P4bCdaLg1qtBnPzUYgglsIdjZkL/fQVOE= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/examples/demo/client/main.go b/examples/demo/client/main.go new file mode 100644 index 00000000..eb6f65cf --- /dev/null +++ b/examples/demo/client/main.go @@ -0,0 +1,216 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Sample contains a simple client that periodically makes a simple http request +// to a server and exports to the OpenTelemetry service. +package main + +import ( + "context" + "fmt" + "log" + "math/rand" + "net/http" + "os" + "time" + + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/baggage" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" + "go.opentelemetry.io/otel/metric/global" + "go.opentelemetry.io/otel/metric/instrument" + "go.opentelemetry.io/otel/propagation" + 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" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" + "google.golang.org/grpc" +) + +// Initializes an OTLP exporter, and configures the corresponding trace and +// metric providers. +func initProvider() func() { + ctx := context.Background() + + otelAgentAddr, ok := os.LookupEnv("OTEL_EXPORTER_OTLP_ENDPOINT") + if !ok { + otelAgentAddr = "0.0.0.0:4317" + } + + metricClient := otlpmetricgrpc.NewClient( + otlpmetricgrpc.WithInsecure(), + otlpmetricgrpc.WithEndpoint(otelAgentAddr)) + metricExp, err := otlpmetric.New(ctx, metricClient) + handleErr(err, "Failed to create the collector metric exporter") + + pusher := controller.New( + processor.NewFactory( + simple.NewWithHistogramDistribution(), + metricExp, + ), + controller.WithExporter(metricExp), + controller.WithCollectPeriod(2*time.Second), + ) + global.SetMeterProvider(pusher) + + err = pusher.Start(ctx) + handleErr(err, "Failed to start metric pusher") + + traceClient := otlptracegrpc.NewClient( + otlptracegrpc.WithInsecure(), + otlptracegrpc.WithEndpoint(otelAgentAddr), + otlptracegrpc.WithDialOption(grpc.WithBlock())) + traceExp, err := otlptrace.New(ctx, traceClient) + handleErr(err, "Failed to create the collector trace exporter") + + res, err := resource.New(ctx, + resource.WithFromEnv(), + resource.WithProcess(), + resource.WithTelemetrySDK(), + resource.WithHost(), + resource.WithAttributes( + // the service name used to display traces in backends + semconv.ServiceNameKey.String("demo-client"), + ), + ) + handleErr(err, "failed to create resource") + + bsp := sdktrace.NewBatchSpanProcessor(traceExp) + tracerProvider := sdktrace.NewTracerProvider( + sdktrace.WithSampler(sdktrace.AlwaysSample()), + sdktrace.WithResource(res), + sdktrace.WithSpanProcessor(bsp), + ) + + // set global propagator to tracecontext (the default is no-op). + otel.SetTextMapPropagator(propagation.TraceContext{}) + otel.SetTracerProvider(tracerProvider) + + return func() { + cxt, cancel := context.WithTimeout(ctx, time.Second) + defer cancel() + if err := traceExp.Shutdown(cxt); err != nil { + otel.Handle(err) + } + // pushes any last exports to the receiver + if err := pusher.Stop(cxt); err != nil { + otel.Handle(err) + } + } +} + +func handleErr(err error, message string) { + if err != nil { + log.Fatalf("%s: %v", message, err) + } +} + +func main() { + shutdown := initProvider() + defer shutdown() + + tracer := otel.Tracer("demo-client-tracer") + meter := global.MeterProvider().Meter("demo-client-meter") + + method, _ := baggage.NewMember("method", "repl") + client, _ := baggage.NewMember("client", "cli") + bag, _ := baggage.New(method, client) + + // labels represent additional key-value descriptors that can be bound to a + // metric observer or recorder. + // TODO: Use baggage when supported to extract labels from baggage. + commonLabels := []attribute.KeyValue{ + attribute.String("method", "repl"), + attribute.String("client", "cli"), + } + + // Recorder metric example + requestLatency, _ := meter.SyncFloat64().Histogram( + "demo_client/request_latency", + instrument.WithDescription("The latency of requests processed"), + ) + + // TODO: Use a view to just count number of measurements for requestLatency when available. + requestCount, _ := meter.SyncInt64().Counter( + "demo_client/request_counts", + instrument.WithDescription("The number of requests processed"), + ) + + lineLengths, _ := meter.SyncInt64().Histogram( + "demo_client/line_lengths", + instrument.WithDescription("The lengths of the various lines in"), + ) + + // TODO: Use a view to just count number of measurements for lineLengths when available. + lineCounts, _ := meter.SyncInt64().Counter( + "demo_client/line_counts", + instrument.WithDescription("The counts of the lines in"), + ) + + defaultCtx := baggage.ContextWithBaggage(context.Background(), bag) + rng := rand.New(rand.NewSource(time.Now().UnixNano())) + for { + startTime := time.Now() + ctx, span := tracer.Start(defaultCtx, "ExecuteRequest") + makeRequest(ctx) + span.End() + latencyMs := float64(time.Since(startTime)) / 1e6 + nr := int(rng.Int31n(7)) + for i := 0; i < nr; i++ { + randLineLength := rng.Int63n(999) + lineCounts.Add(ctx, 1, commonLabels...) + lineLengths.Record(ctx, randLineLength, commonLabels...) + fmt.Printf("#%d: LineLength: %dBy\n", i, randLineLength) + } + + requestLatency.Record(ctx, latencyMs, commonLabels...) + requestCount.Add(ctx, 1, commonLabels...) + + fmt.Printf("Latency: %.3fms\n", latencyMs) + time.Sleep(time.Duration(1) * time.Second) + } +} + +func makeRequest(ctx context.Context) { + + demoServerAddr, ok := os.LookupEnv("DEMO_SERVER_ENDPOINT") + if !ok { + demoServerAddr = "http://0.0.0.0:7080/hello" + } + + // Trace an HTTP client by wrapping the transport + client := http.Client{ + Transport: otelhttp.NewTransport(http.DefaultTransport), + } + + // Make sure we pass the context to the request to avoid broken traces. + req, err := http.NewRequestWithContext(ctx, "GET", demoServerAddr, nil) + if err != nil { + handleErr(err, "failed to http request") + } + + // All requests made with this client will create spans. + res, err := client.Do(req) + if err != nil { + panic(err) + } + res.Body.Close() +} diff --git a/examples/demo/docker-compose.yaml b/examples/demo/docker-compose.yaml new file mode 100644 index 00000000..035be4ac --- /dev/null +++ b/examples/demo/docker-compose.yaml @@ -0,0 +1,62 @@ +version: "2" +services: + + # Jaeger + jaeger-all-in-one: + image: jaegertracing/all-in-one:latest + ports: + - "16686:16686" + - "14268" + - "14250" + + # Zipkin + zipkin-all-in-one: + image: openzipkin/zipkin:latest + ports: + - "9411:9411" + + # Collector + otel-collector: + image: ${OTELCOL_IMG} + command: ["--config=/etc/otel-collector-config.yaml", "${OTELCOL_ARGS}"] + volumes: + - ./otel-collector-config.yaml:/etc/otel-collector-config.yaml + ports: + - "1888:1888" # pprof extension + - "8888:8888" # Prometheus metrics exposed by the collector + - "8889:8889" # Prometheus exporter metrics + - "13133:13133" # health_check extension + - "4317" # OTLP gRPC receiver + - "55670:55679" # zpages extension + depends_on: + - jaeger-all-in-one + - zipkin-all-in-one + + demo-client: + build: + dockerfile: Dockerfile + context: ./client + environment: + - OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4317 + - DEMO_SERVER_ENDPOINT=http://demo-server:7080/hello + depends_on: + - demo-server + + demo-server: + build: + dockerfile: Dockerfile + context: ./server + environment: + - OTEL_EXPORTER_OTLP_ENDPOINT=otel-collector:4317 + ports: + - "7080" + depends_on: + - otel-collector + + prometheus: + container_name: prometheus + image: prom/prometheus:latest + volumes: + - ./prometheus.yaml:/etc/prometheus/prometheus.yml + ports: + - "9090:9090" diff --git a/examples/demo/otel-collector-config.yaml b/examples/demo/otel-collector-config.yaml new file mode 100644 index 00000000..38f94152 --- /dev/null +++ b/examples/demo/otel-collector-config.yaml @@ -0,0 +1,43 @@ +receivers: + otlp: + protocols: + grpc: + +exporters: + prometheus: + endpoint: "0.0.0.0:8889" + const_labels: + label1: value1 + + logging: + + zipkin: + endpoint: "http://zipkin-all-in-one:9411/api/v2/spans" + format: proto + + jaeger: + endpoint: jaeger-all-in-one:14250 + tls: + insecure: true + +processors: + batch: + +extensions: + health_check: + pprof: + endpoint: :1888 + zpages: + endpoint: :55679 + +service: + extensions: [pprof, zpages, health_check] + pipelines: + traces: + receivers: [otlp] + processors: [batch] + exporters: [logging, zipkin, jaeger] + metrics: + receivers: [otlp] + processors: [batch] + exporters: [logging, prometheus] diff --git a/examples/demo/prometheus.yaml b/examples/demo/prometheus.yaml new file mode 100644 index 00000000..a8477547 --- /dev/null +++ b/examples/demo/prometheus.yaml @@ -0,0 +1,6 @@ +scrape_configs: + - job_name: 'otel-collector' + scrape_interval: 10s + static_configs: + - targets: ['otel-collector:8889'] + - targets: ['otel-collector:8888'] diff --git a/examples/demo/server/Dockerfile b/examples/demo/server/Dockerfile new file mode 100644 index 00000000..050f9fcf --- /dev/null +++ b/examples/demo/server/Dockerfile @@ -0,0 +1,19 @@ +# Copyright The OpenTelemetry Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +FROM golang:1.17 +COPY . /usr/src/server/ +WORKDIR /usr/src/server/ +RUN go env -w GOPROXY=direct +RUN go install ./main.go +CMD ["/go/bin/main"] diff --git a/examples/demo/server/Makefile b/examples/demo/server/Makefile new file mode 100644 index 00000000..bdd863a2 --- /dev/null +++ b/examples/demo/server/Makefile @@ -0,0 +1 @@ +include ../../../Makefile.Common diff --git a/examples/demo/server/go.mod b/examples/demo/server/go.mod new file mode 100644 index 00000000..18194a05 --- /dev/null +++ b/examples/demo/server/go.mod @@ -0,0 +1,34 @@ +module github.com/open-telemetry/opentelemetry-collector-contrib/examples/demo/server + +go 1.17 + +require ( + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 + go.opentelemetry.io/otel v1.6.3 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0 + go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0 + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3 + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1 + go.opentelemetry.io/otel/metric v0.29.0 + go.opentelemetry.io/otel/sdk v1.6.3 + go.opentelemetry.io/otel/sdk/metric v0.29.0 + go.opentelemetry.io/otel/trace v1.6.3 + google.golang.org/grpc v1.45.0 +) + +require ( + github.com/cenkalti/backoff/v4 v4.1.2 // indirect + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/felixge/httpsnoop v1.0.2 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/protobuf v1.5.2 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3 // indirect + go.opentelemetry.io/proto/otlp v0.15.0 // indirect + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 // indirect + golang.org/x/sys v0.0.0-20210510120138-977fb7262007 // indirect + golang.org/x/text v0.3.5 // indirect + google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 // indirect + google.golang.org/protobuf v1.28.0 // indirect +) diff --git a/examples/demo/server/go.sum b/examples/demo/server/go.sum new file mode 100644 index 00000000..f4945e8d --- /dev/null +++ b/examples/demo/server/go.sum @@ -0,0 +1,471 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= +github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= +github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= +github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +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= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/felixge/httpsnoop v1.0.2 h1:+nS9g82KMXccJ/wp0zyRW9ZBHFETmMGtkk+2CTTrW4o= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +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= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 h1:BZHcxBETFHIdVyhyEfOvn/RdU/QGdLI4y34qQGjGWO0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0 h1:woM+Mb4d0A+Dxa3rYPenSN5ZeS9qHUvE8rlObiLRXTY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0/go.mod h1:PFmBsWbldL1kiWZk9+0LBZz2brhByaGsvp6pRICMlPE= +go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ= +go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ= +go.opentelemetry.io/otel v1.6.3 h1:FLOfo8f9JzFVFVyU+MSRJc2HdEAXQgm7pIv2uFKRSZE= +go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.1/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3 h1:nAmg1WgsUXoXf46dJG9eS/AzOcvkCTK4xJSUYpWyHYg= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.3/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0 h1:u6rq3Ho3wjjHFOOH+LVoYywFnUc0T95LZEkRsPGPt/4= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.29.0/go.mod h1:PKxLLBdoSnJ28ygFD38kzxBf439PM+udiEhdyogQaQU= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0 h1:VDQWOrFLUHdtxRtsRIn6H4/sZqnrqZpJmHZhjMANMig= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.29.0/go.mod h1:I4kweNROS+aomq5LYP2WFAhFH16RdFle5iAqrn1CUYQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.1/go.mod h1:YJ/JbY5ag/tSQFXzH3mtDmHqzF3aFn3DI/aB1n7pt4w= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3 h1:4/UjHWMVVc5VwX/KAtqJOHErKigMCH8NexChMuanb/o= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.6.3/go.mod h1:UJmXdiVVBaZ63umRUTwJuCMAV//GCMvDiQwn703/GoY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1 h1:G45R6KdPgxe9UaZJMF4VUnsYgZpOHCSgl7FiOEV6570= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.6.1/go.mod h1:UJJXJj0rltNIemDMwkOJyggsvyMG9QHfJeFH0HS5JjM= +go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw= +go.opentelemetry.io/otel/metric v0.29.0 h1:7unM/I13Dbc1VHw8lTPQ7zfNIgkhcb8BZhujXOS4jKc= +go.opentelemetry.io/otel/metric v0.29.0/go.mod h1:HahKFp1OC1RNTsuO/HNMBHHJR+dmHZ7wLARRgGDwjLQ= +go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E= +go.opentelemetry.io/otel/sdk v1.6.3 h1:prSHYdwCQOX5DrsEzxowH3nLhoAzEBdZhvrR79scfLs= +go.opentelemetry.io/otel/sdk v1.6.3/go.mod h1:A4iWF7HTXa+GWL/AaqESz28VuSBIcZ+0CV+IzJ5NMiQ= +go.opentelemetry.io/otel/sdk/metric v0.29.0 h1:OCEp2igPFXQrGxSR/nwd/bDjkPlPlOVjIULA/ob0dNw= +go.opentelemetry.io/otel/sdk/metric v0.29.0/go.mod h1:IFkFNKI8Gq8zBdqOKdODCL9+LInBZLXaGpqSIKphNuU= +go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE= +go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0= +go.opentelemetry.io/otel/trace v1.6.3 h1:IqN4L+5b0mPNjdXIiZ90Ni4Bl5BRkDQywePLWemd9bc= +go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.12.1/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v0.15.0 h1:h0bKrvdrT/9sBwEJ6iWUqT/N/xPcS66bL4u3isneJ6w= +go.opentelemetry.io/proto/otlp v0.15.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.uber.org/goleak v1.1.12 h1:gZAh5/EyT/HQwlpkCy6wTpqfH9H8Lz8zbm3dZh+OyzA= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4 h1:4nGaVu0QrbjT/AK2PRLuQfQuh6DJve+pELhqTdAj3x0= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007 h1:gG67DSER+11cZvqIMb8S8bt0vZtiN6xWYARwirrOSfE= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1 h1:b9mVrqYfq3P4bCdaLg1qtBnPzUYgglsIdjZkL/fQVOE= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= +google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.45.0 h1:NEpgUqV3Z+ZjkqMsxMg11IaDrXY4RY6CQukSGK0uI1M= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +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/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/examples/demo/server/main.go b/examples/demo/server/main.go new file mode 100644 index 00000000..73d7f9f7 --- /dev/null +++ b/examples/demo/server/main.go @@ -0,0 +1,167 @@ +// Copyright The OpenTelemetry Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Sample contains a simple http server that exports to the OpenTelemetry agent. +package main + +import ( + "context" + "log" + "math/rand" + "net/http" + "os" + "time" + + "go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp" + "go.opentelemetry.io/otel" + "go.opentelemetry.io/otel/attribute" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric" + "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace" + "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" + "go.opentelemetry.io/otel/metric/global" + "go.opentelemetry.io/otel/metric/instrument" + "go.opentelemetry.io/otel/propagation" + 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" + "go.opentelemetry.io/otel/sdk/resource" + sdktrace "go.opentelemetry.io/otel/sdk/trace" + semconv "go.opentelemetry.io/otel/semconv/v1.4.0" + "go.opentelemetry.io/otel/trace" + "google.golang.org/grpc" +) + +var rng = rand.New(rand.NewSource(time.Now().UnixNano())) + +// Initializes an OTLP exporter, and configures the corresponding trace and +// metric providers. +func initProvider() func() { + ctx := context.Background() + + otelAgentAddr, ok := os.LookupEnv("OTEL_EXPORTER_OTLP_ENDPOINT") + if !ok { + otelAgentAddr = "0.0.0.0:4317" + } + + metricClient := otlpmetricgrpc.NewClient( + otlpmetricgrpc.WithInsecure(), + otlpmetricgrpc.WithEndpoint(otelAgentAddr)) + metricExp, err := otlpmetric.New(ctx, metricClient) + handleErr(err, "Failed to create the collector metric exporter") + + pusher := controller.New( + processor.NewFactory( + simple.NewWithHistogramDistribution(), + metricExp, + ), + controller.WithExporter(metricExp), + controller.WithCollectPeriod(2*time.Second), + ) + global.SetMeterProvider(pusher) + + err = pusher.Start(ctx) + handleErr(err, "Failed to start metric pusher") + + traceClient := otlptracegrpc.NewClient( + otlptracegrpc.WithInsecure(), + otlptracegrpc.WithEndpoint(otelAgentAddr), + otlptracegrpc.WithDialOption(grpc.WithBlock())) + traceExp, err := otlptrace.New(ctx, traceClient) + handleErr(err, "Failed to create the collector trace exporter") + + res, err := resource.New(ctx, + resource.WithFromEnv(), + resource.WithProcess(), + resource.WithTelemetrySDK(), + resource.WithHost(), + resource.WithAttributes( + // the service name used to display traces in backends + semconv.ServiceNameKey.String("demo-server"), + ), + ) + handleErr(err, "failed to create resource") + + bsp := sdktrace.NewBatchSpanProcessor(traceExp) + tracerProvider := sdktrace.NewTracerProvider( + sdktrace.WithSampler(sdktrace.AlwaysSample()), + sdktrace.WithResource(res), + sdktrace.WithSpanProcessor(bsp), + ) + + // set global propagator to tracecontext (the default is no-op). + otel.SetTextMapPropagator(propagation.TraceContext{}) + otel.SetTracerProvider(tracerProvider) + + return func() { + cxt, cancel := context.WithTimeout(ctx, time.Second) + defer cancel() + if err := traceExp.Shutdown(cxt); err != nil { + otel.Handle(err) + } + // pushes any last exports to the receiver + if err := pusher.Stop(cxt); err != nil { + otel.Handle(err) + } + } +} + +func handleErr(err error, message string) { + if err != nil { + log.Fatalf("%s: %v", message, err) + } +} + +func main() { + shutdown := initProvider() + defer shutdown() + + meter := global.MeterProvider().Meter("demo-server-meter") + serverAttribute := attribute.String("server-attribute", "foo") + commonLabels := []attribute.KeyValue{serverAttribute} + requestCount, _ := meter.SyncInt64().Counter( + "demo_server/request_counts", + instrument.WithDescription("The number of requests received"), + ) + + // create a handler wrapped in OpenTelemetry instrumentation + handler := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { + // random sleep to simulate latency + var sleep int64 + switch modulus := time.Now().Unix() % 5; modulus { + case 0: + sleep = rng.Int63n(2000) + case 1: + sleep = rng.Int63n(15) + case 2: + sleep = rng.Int63n(917) + case 3: + sleep = rng.Int63n(87) + case 4: + sleep = rng.Int63n(1173) + } + time.Sleep(time.Duration(sleep) * time.Millisecond) + ctx := req.Context() + requestCount.Add(ctx, 1, commonLabels...) + span := trace.SpanFromContext(ctx) + span.SetAttributes(serverAttribute) + w.Write([]byte("Hello World")) + }) + wrappedHandler := otelhttp.NewHandler(handler, "/hello") + + // serve up the wrapped handler + http.Handle("/hello", wrappedHandler) + http.ListenAndServe(":7080", nil) + +} diff --git a/examples/kubernetes/README.md b/examples/kubernetes/README.md new file mode 100644 index 00000000..dec70d63 --- /dev/null +++ b/examples/kubernetes/README.md @@ -0,0 +1,59 @@ +# OpenTelemetry Collector Demo + +This demo is a sample app to build the collector and exercise its kubernetes logs scrapping functionality. + +## Build and Run + +### Kubernetes + +Switch to this directory and run following command: `kubectl apply -n -f otel-collector.yaml` + +#### Include/Exclude Specific Logs + +Kubernetes logs are being stored in `/var/log/pods`. +Path to container logs is constructed using following pattern: + +`/var/log/pods/__//.log` + +You can use it to manage from which containers do you want to include and exclude logs. + +For example, to include all logs from `default` namespace, you can use following configuration: + +```yaml +include: + - /var/log/pods/default_*/*/*.log +exclude: [] +``` + +### Docker Compose + +Two steps are required to build and run the demo: + +1. Build latest docker image in main repository directory `make docker-otelcontribcol` +1. Switch to this directory and run `docker-compose up` + +#### Description + +`varlogpods` contains example log files placed in kubernetes-like directory structure. +Each of the directory has different formatted logs in one of three formats (either `CRI-O`, `CRI-Containerd` or `Docker`). +This directory is mounted to standard location (`/var/log/pods`). + +`otel-collector-config` is a configuration to autodetect and parse logs for all of three mentioned formats + +## Performance Tests + +There are multiple tests for various configurations in [`testbed`](../../testbed/tests/log_test.go). +Following table shows result of example run: + +Test |Result|Duration|CPU Avg%|CPU Max%|RAM Avg MiB|RAM Max MiB|Sent Items|Received Items| +----------------------------------------|------|-------:|-------:|-------:|----------:|----------:|---------:|-------------:| +Log10kDPS/OTLP |PASS | 15s| 15.2| 15.7| 69| 73| 149900| 149900| +Log10kDPS/filelog |PASS | 15s| 16.5| 18.0| 61| 74| 150000| 150000| +Log10kDPS/kubernetes_containers |PASS | 15s| 42.3| 44.0| 66| 80| 150000| 150000| +Log10kDPS/k8s_CRI-Containerd |PASS | 15s| 36.7| 38.0| 64| 78| 150000| 150000| +Log10kDPS/k8s_CRI-Containerd_no_attr_ops|PASS | 15s| 28.9| 29.7| 64| 77| 150000| 150000| +Log10kDPS/CRI-Containerd |PASS | 15s| 19.0| 21.0| 63| 77| 150000| 150000| + +## ToDo + +To cover kubernetes system logs, logs from journald should be supported as well. diff --git a/examples/kubernetes/docker-compose.yml b/examples/kubernetes/docker-compose.yml new file mode 100644 index 00000000..6bb749ad --- /dev/null +++ b/examples/kubernetes/docker-compose.yml @@ -0,0 +1,8 @@ +version: "3" +services: + opentelemetry-collector-contrib: + image: otelcontribcol + command: ["--config=/etc/otel-collector-config.yml"] + volumes: + - ./otel-collector-config.yml:/etc/otel-collector-config.yml + - ./varlogpods:/var/log/pods diff --git a/examples/kubernetes/otel-collector-config.yml b/examples/kubernetes/otel-collector-config.yml new file mode 100644 index 00000000..e3952edf --- /dev/null +++ b/examples/kubernetes/otel-collector-config.yml @@ -0,0 +1,80 @@ +receivers: + filelog: + include: + - /var/log/pods/*/*/*.log + exclude: + # Exclude logs from all containers named otel-collector + - /var/log/pods/*/otel-collector/*.log + start_at: beginning + include_file_path: true + include_file_name: false + operators: + # Find out which format is used by kubernetes + - type: router + id: get-format + routes: + - output: parser-docker + expr: 'body matches "^\\{"' + - output: parser-crio + expr: 'body matches "^[^ Z]+ "' + - output: parser-containerd + expr: 'body matches "^[^ Z]+Z"' + # Parse CRI-O format + - type: regex_parser + id: parser-crio + regex: '^(?P