Метрики — это числовые измерения в терминах неспециалиста. Термин «временной ряд» относится к записи изменений с течением времени. То, что пользователи хотят измерить, отличается от приложения к приложению. Для веб-сервера это может быть время запроса; для базы данных это может быть количество активных подключений или активных запросов и т. д.
# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
# TYPE process_cpu_seconds_total counter
process_cpu_seconds_total 74975.9
# HELP process_max_fds Maximum number of open file descriptors.
# TYPE process_max_fds gauge
process_max_fds 1024
# TYPE prometheus_http_request_duration_seconds histogram
prometheus_http_request_duration_seconds_bucket{handler="/",le="0.1"} 4
prometheus_http_request_duration_seconds_bucket{handler="/",le="1"} 5
prometheus_http_request_duration_seconds_bucket{handler="/",le="+Inf"} 5
prometheus_http_request_duration_seconds_sum{handler="/"} 0.00010242899999999999
prometheus_http_request_duration_seconds_count{handler="/"} 5
# HELP prometheus_engine_query_duration_seconds Query timings
# TYPE prometheus_engine_query_duration_seconds summary
prometheus_engine_query_duration_seconds{slice="inner_eval",quantile="0.5"} 0.000873159
prometheus_engine_query_duration_seconds{slice="inner_eval",quantile="0.9"} 0.00157632
prometheus_engine_query_duration_seconds{slice="inner_eval",quantile="0.99"} 0.004120682
prometheus_engine_query_duration_seconds_sum{slice="inner_eval"} 1103.8119541089861
prometheus_engine_query_duration_seconds_count{slice="inner_eval"} 589715
Подробнее описано тут https://prometheus.io/docs/concepts/metric_types/
flowchart TD
serv[Service] -->|nuget| opentelemetry(opentelemetry)
opentelemetry -->|grpc| otel[Otel-collector]
prom[Prometheus] -->|/metrics| otel
Graf[Grafana] -->|api|prom
zab[Zabix] -->|api|prom
subgraph Service
serv
opentelemetry
end
В следующем примере используется базовый Минимальный API с ASP.NET Core приложение.
Для начала настройте среду в новом каталоге с именем dotnet-simple. В этом каталоге выполните следующую команду:
dotnet new web