in core/src/layers/prometheus_client.rs [414:488]
fn observe(&self, labels: observe::MetricLabels, value: observe::MetricValue) {
let labels = OperationLabels {
labels,
disable_label_root: self.disable_label_root,
};
match value {
observe::MetricValue::OperationBytes(v) => self
.operation_bytes
.get_or_create(&labels)
.observe(v as f64),
observe::MetricValue::OperationBytesRate(v) => {
self.operation_bytes_rate.get_or_create(&labels).observe(v)
}
observe::MetricValue::OperationEntries(v) => self
.operation_entries
.get_or_create(&labels)
.observe(v as f64),
observe::MetricValue::OperationEntriesRate(v) => self
.operation_entries_rate
.get_or_create(&labels)
.observe(v),
observe::MetricValue::OperationDurationSeconds(v) => self
.operation_duration_seconds
.get_or_create(&labels)
.observe(v.as_secs_f64()),
observe::MetricValue::OperationErrorsTotal => {
self.operation_errors_total.get_or_create(&labels).inc();
}
observe::MetricValue::OperationExecuting(v) => {
self.operation_executing
.get_or_create(&labels)
.inc_by(v as i64);
}
observe::MetricValue::OperationTtfbSeconds(v) => self
.operation_ttfb_seconds
.get_or_create(&labels)
.observe(v.as_secs_f64()),
observe::MetricValue::HttpExecuting(v) => {
self.http_executing.get_or_create(&labels).inc_by(v as i64);
}
observe::MetricValue::HttpRequestBytes(v) => self
.http_request_bytes
.get_or_create(&labels)
.observe(v as f64),
observe::MetricValue::HttpRequestBytesRate(v) => self
.http_request_bytes_rate
.get_or_create(&labels)
.observe(v),
observe::MetricValue::HttpRequestDurationSeconds(v) => self
.http_request_duration_seconds
.get_or_create(&labels)
.observe(v.as_secs_f64()),
observe::MetricValue::HttpResponseBytes(v) => self
.http_response_bytes
.get_or_create(&labels)
.observe(v as f64),
observe::MetricValue::HttpResponseBytesRate(v) => self
.http_response_bytes_rate
.get_or_create(&labels)
.observe(v),
observe::MetricValue::HttpResponseDurationSeconds(v) => self
.http_response_duration_seconds
.get_or_create(&labels)
.observe(v.as_secs_f64()),
observe::MetricValue::HttpConnectionErrorsTotal => {
self.http_connection_errors_total
.get_or_create(&labels)
.inc();
}
observe::MetricValue::HttpStatusErrorsTotal => {
self.http_status_errors_total.get_or_create(&labels).inc();
}
};
}