123456789101112131415161718192021222324 |
- // Copyright The OpenTelemetry Authors
- // SPDX-License-Identifier: Apache-2.0
- // Package metrics contains functionality for testing an otelcol pipeline end to end for metric correctness.
- // Partly because of how Prometheus works (being pull-based) metrics correctness works differently than
- // the performance testbed in the parent directory. Whereas performance testing sends a relatively large
- // number of data-points into the collector, this package sends metrics in one at a time, and only sends the
- // next datapoint when the previous datapoint has been processed and compared to the original.
- //
- // Mostly similar to the performance testing pipeline, this pipeline looks like the following:
- // [testbed exporter] -> [otelcol receiver] -> [otelcol exporter] -> [testbed receiver] -> [test harness]
- //
- // the difference being the testHarness, which is connected to [testbed receiver] as its metrics
- // consumer, listening for data-points. To start the process, one datapoint is sent into the testbed
- // exporter, it goes through the pipeline, and arrives at the testbed receiver, which passes it along to the
- // test harness. The test harness compares the received datapoint to the original datapoint it sent, and saves
- // any diffs it found in a diffAccumulator instance. Then it sends the next datapoint. This continues until
- // there are no more data-points. The simple diagram above should have a loop, where [test harness] connects
- // back to [testbed exporter].
- //
- // Data-points are supplied to the testHarness by a metricSupplier, which receives all of the metrics it needs
- // upfront. Those metrics are in turn generated by a metricGenerator, which receives its config from a PICT
- // generated file, as the trace correctness functionality does.
- package metrics // import "github.com/open-telemetry/opentelemetry-collector-contrib/testbed/correctnesstests/metrics"
|