APM metrics aggregation library that implements an LSM (Log Structured Merge tree)-based metrics aggregator.
Files are subject to Elastic License v2. See LICENSE.txt for more.
apm-aggregation
uses OTEL to instrument itself. Instrumentation produces a set
of metrics to help monitor the status of aggregations. This section describes the
metrics produced by apm-aggregation
in detail.
apm-aggregation
aggregates metrics using LSM based key-value store pebble.
The intrumentation covers two broad areas:
- The core aggregation logic, including ingestion and harvest.
- Performance of pebble database.
apm-aggregation
records and publishes the following metrics:
- Type:
Float64Counter
The number of processed APM Events. It includes successfully and unsuccessfully processed events, which are reported as dimensions.
- Type:
Int64Counter
The number of encoded bytes processed by the aggregator. This reports the same number of bytes that is written to the underlying db.
- Type:
Float64Histogram
The processing delay for a batch of APM events accepted at a specific processing time. It is recorded after removing any expected delays due to aggregation interval or configuration.
- Type:
Float64Histogram
The delay in processing a batch based on the youngest APM event received in the batch.
- Type:
Int64Counter
Estimated number of metric aggregation keys that resulted in an overflow, per interval and aggregation type.
- Type:
Int64ObservableCounter
The number of memtable flushes to disk.
- Type:
Int64ObservableCounter
The number of bytes written during a flush.
- Type:
Int64ObservableCounter
The number of table compactions performed by pebble.
- Type:
Int64ObservableCounter
The number of bytes ingested by pebble.
- Type:
Int64ObservableCounter
The number of bytes read during compaction.
- Type:
Int64ObservableCounter
The number of bytes written during compaction.
- Type:
Int64ObservableGauge
The current size of memtable in bytes.
- Type:
Int64ObservableGauge
The current total disk usage by pebble in bytes, including live and obsolete files.
- Type:
Int64ObservableGauge
The current read amplification for the db.
- Type:
Int64ObservableGauge
The current number of SSTables.
- Type:
Int64ObservableGauge
The memory in bytes used by pebble for index and fliter blocks.
- Type:
Int64ObservableGauge
The current number of estimated bytes pending for compaction.
- Type:
Int64ObservableGauge
The current number of SSTables marked for compaction.
- Type:
Int64ObservableGauge
The approximate count of delete keys across the storage engine.
This section lists the general dimensions published by some of the metric.
This is an optional dimension. The key and the value of this dimension depends
on the option WithCombinedMetricsIDToKVs
passed to the aggregator. If this
option is not supplied then this dimension is omitted.
Holds the value of aggregation interval for which the combined metrics is produced.
For example: 1m
, 10m
, etc.
Holds the the aggregation type for which an overflow occurred.
For example: service
, transaction
, service_transaction
, service_destination
.
Events that have been successfully aggregated into the final combined metrics and processed as part of the harvest.
Events that failed to be aggregated for an reason and were dropped at any stage in the aggregation process.