Туториал

Как начать собирать метрики в Konso

Пошаговая инструкция: подключите Konso SDK и отправьте первую метрику из .NET-приложения за 10 минут.

Открыть Konso arrow_forward
bolt

TL;DR

  • check_circleУстановите NuGet-пакет Konso.Client и зарегистрируйте IKonsoMetrics в DI-контейнере
  • check_circleМетрика — это именованное числовое значение: счётчик запросов, время ответа, количество ошибок
  • check_circleВызовите metricsClient.TrackAsync("metric.name", value) в нужной точке кода
  • check_circleМетрики появятся в разделе Метрики в Konso — графики и агрегации строятся автоматически
  • check_circleДля не-.NET платформ доступна прямая отправка через REST API

Что такое метрики в Konso

Метрика в Konso — это именованное числовое значение, привязанное к точке во времени. Вы отправляете значение из кода приложения, Konso хранит его в Elasticsearch и строит по нему агрегации: sum, avg, min, max, count за любой временной диапазон. Метрики подходят для технических показателей: latency, throughput, error rate, размер очередей.

Что понадобится перед началом

  • check_circleАккаунт Konso на app.konso.io
  • check_circleСозданный проект в Konso
  • check_circleAPI токен проекта — получите в Настройки → API доступ (см. туториал «Как получить API токен»)
  • check_circle.NET 6+ приложение

Шаг 1. Установите NuGet-пакет

Если Konso.Client ещё не установлен — добавьте пакет в проект: dotnet add package Konso.Client [скриншот: терминал с успешной установкой пакета Konso.Client]

Шаг 2. Добавьте API токен в конфигурацию

В appsettings.json добавьте секцию Konso (или используйте уже существующую, если логи уже подключены): { "Konso": { "ApiKey": "ВАШ_API_ТОКЕН" } } Для production используйте переменные окружения: export Konso__ApiKey="ВАШ_API_ТОКЕН" [скриншот: appsettings.json с секцией Konso]

Шаг 3. Зарегистрируйте сервис метрик

В Program.cs добавьте регистрацию Konso Metrics: var builder = WebApplication.CreateBuilder(args); builder.Services.AddKonsoMetrics(options => { options.ApiKey = builder.Configuration["Konso:ApiKey"]; }); var app = builder.Build(); [скриншот: Program.cs с добавленной строкой builder.Services.AddKonsoMetrics] После этого IKonsoMetrics доступен для внедрения через DI в любом классе приложения.

Шаг 4. Внедрите клиент и отправьте первую метрику

Внедрите IKonsoMetrics в конструктор нужного класса и вызовите TrackAsync: public class PaymentService { private readonly IKonsoMetrics _metrics; public PaymentService(IKonsoMetrics metrics) { _metrics = metrics; } public async Task ProcessPayment(decimal amount) { var sw = Stopwatch.StartNew(); // ... логика оплаты ... sw.Stop(); // Время выполнения в миллисекундах await _metrics.TrackAsync("payment.duration_ms", sw.ElapsedMilliseconds); // Счётчик успешных оплат await _metrics.TrackAsync("payment.success_count", 1); // Сумма оплаты await _metrics.TrackAsync("payment.amount", (double)amount); } } [скриншот: код сервиса с IKonsoMetrics и вызовами TrackAsync]

Шаг 5. Откройте раздел Метрики в Konso

Перейдите в Konso → ваш проект → раздел Метрики. После первого вызова TrackAsync метрика появится в списке доступных. [скриншот: раздел Метрики в Konso со списком метрик и графиком payment.duration_ms] Выберите метрику и временной диапазон — Konso автоматически построит график с агрегацией по выбранному периоду.

Шаг 6. Выберите агрегацию и временное окно

Для каждой метрики доступны агрегации: avg, sum, min, max, count. Выберите нужную в зависимости от типа метрики: • payment.duration_ms → avg (среднее время) или p99 (перцентиль) • payment.success_count → sum (общее количество за период) • payment.amount → sum (суммарный оборот) или avg (средний чек) [скриншот: интерфейс выбора агрегации и временного окна для метрики в Konso] График обновится в соответствии с выбранными настройками.

Шаг 7. Настройте алерт по метрике

Создайте алерт, чтобы получать уведомления при выходе метрики за пороговые значения. Перейдите в раздел Алерты → Создать алерт. Выберите: • Метрику: payment.duration_ms • Условие: avg > 2000 (среднее время ответа больше 2 секунд) • Временное окно: последние 5 минут • Канал уведомления: Telegram или Email [скриншот: форма создания алерта с настройками для метрики payment.duration_ms] Теперь вы получите уведомление, как только latency выйдет за допустимые пределы.

Альтернатива: отправка метрик через REST API

Для платформ и языков без .NET SDK используйте прямую отправку через HTTP.

Какие метрики стоит подключить в первую очередь

  • check_circleВремя ответа ключевых API endpoints (latency) — avg и p99
  • check_circleКоличество ошибок по типам — sum за период
  • check_circleРазмер очередей или буферов — для выявления накопления
  • check_circleВремя выполнения фоновых задач (BackgroundService) — avg
  • check_circleКоличество активных пользователей или сессий — count
lightbulb

Метрики vs Value Tracking

Метрики подходят для технических числовых показателей системы (latency, throughput, размер очередей). Для бизнес-событий (оплаты, регистрации, конверсии) используйте Value Tracking — он хранит не только значение, но и контекст каждого события.

Что сделать после подключения

  • check_circleСоздайте дашборд с ключевыми техническими метриками приложения
  • check_circleНастройте алерты на latency и error rate с разумными порогами
  • check_circleДобавьте теги (tags) к метрикам для фильтрации по endpoint, сервису или окружению
  • check_circleПодключите Value Tracking для бизнес-событий — и сопоставьте с техническими метриками

Настройте мониторинг метрик в Konso

Подключите Konso и получите графики, агрегации и алерты по метрикам вашего приложения

Начать бесплатно arrow_forward

Частые вопросы

Чем метрики в Konso отличаются от Prometheus или StatsD? expand_more
Konso не требует отдельного сервера для сбора метрик — данные отправляются напрямую в Elasticsearch через HTTP. Это упрощает инфраструктуру. Konso не поддерживает pull-модель (как Prometheus): метрики отправляются в push-режиме из кода приложения.
Можно ли отправлять метрики с тегами для фильтрации? expand_more
Да, при отправке метрики через SDK или REST API можно передать теги (tags) как словарь произвольных ключей и значений. Теги индексируются в Elasticsearch и доступны для фильтрации в интерфейсе Konso.
Как часто можно отправлять метрики? expand_more
Konso SDK буферизует метрики и отправляет их батчами асинхронно, поэтому частые вызовы TrackAsync не создают избыточной нагрузки. Для высокочастотных метрик (каждый HTTP-запрос) рекомендуется использовать локальную агрегацию и отправлять агрегированное значение раз в секунду или минуту.
Как подключить метрики без изменения существующего кода? expand_more
Для ASP.NET Core можно зарегистрировать middleware, который автоматически трекает latency и статус-коды для всех HTTP-запросов без изменения отдельных контроллеров или сервисов.
Метрики и логи хранятся отдельно или вместе? expand_more
В Konso метрики и логи хранятся в Elasticsearch в разных индексах, но в одном кластере. Это позволяет строить корреляции между ними в одном интерфейсе — например, сопоставить всплеск метрики error_rate с конкретными Error-логами в тот же период.

Оставаясь на сайте, Вы даете свое согласие на использование файлов cookie