Назад к вопросам
Middle
108
questionbank

Какой стандартный набор метрик используется в программе на Go с Prometheus?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Наиболее распространенный стандартный набор метрик для мониторинга Go-программ с использованием Prometheus включает:

  • process_cpu_seconds_total: Общее время ЦП, затраченное процессом.
  • process_virtual_memory_bytes: Виртуальный размер памяти процесса.
  • process_resident_memory_bytes: Размер резидентной памяти процесса.
  • go_goroutines: Количество активных горутин.
  • go_threads: Количество запущенных потоков ОС.
  • go_memstats_alloc_bytes: Количество байт, выделенных для объектов кучи.
  • go_memstats_heap_alloc_bytes: Количество байт, выделенных для объектов на куче.
  • go_memstats_stack_inuse_bytes: Количество байт, используемых для стеков горутин.
  • go_memstats_gc_sys_bytes: Объем памяти, используемый для метаданных сборщика мусора.
  • go_gc_duration_seconds: Время, потраченное на сборку мусора.

Помимо этих базовых метрик, часто добавляют специфические метрики приложения, такие как:

  • Счетчики запросов/ошибок к внешним сервисам (база данных, API).
  • Продолжительность выполнения ключевых операций.
  • Метрики очереди сообщений.

Пример экспорта базовых метрик:

package main

import (
	"net/http"

	"github.com/prometheus/client_golang/prometheus/promhttp"
)

func main() {
	// Регистрируем стандартный обработчик Prometheus для метрик
	http.Handle("/metrics", promhttp.Handler())
	// Запускаем HTTP сервер для экспорта метрик
	http.ListenAndServe(":2112", nil)
}