narrowmetrics

package
v1.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package narrowmetrics — ЕДИНСТВЕННЫЙ коллектор величин сужателя списков.

Почему одна реализация на пятерых

Сужатель в этом дереве один (`pkg/listnarrow`), потому что пять копий одного решения о видимости разъезжаются молча. Ровно та же причина держит единым и его наблюдение: пять коллекторов с одинаковыми на вид именами серий — это пять мест, где полосу можно забыть, переименовать или сложить не с тем. Здесь имя семейства собирается из имени сервиса по одному правилу, а словарь исходов закрыт константами.

Что различают четыре полосы

  • `narrowed` — страница сужена ШТАТНО;
  • `breakglass` — ушла несуженной по аварийному режиму;
  • `softpass_misconfigured` — ушла несуженной на ответе, ДОКАЗЫВАЮЩЕМ неверную настройку (сам такой отказ не пройдёт никогда);
  • `softpass_transient` — ушла несуженной на отказе, который может пройти сам.

Три последние означают страницу, ушедшую без пообъектной проверки, и на боевой посадке обязаны быть нулями: аварийный режим и мягкий проход там запрещены отказом старта. Первая нужна, чтобы эти нули отличались от «сужателя не звали ни разу» — без неё три нуля утверждали бы благополучие там, где защита просто не исполняется.

Величины читаются ИЗ ПРОЦЕССА

Коллектор не делает внешних вызовов в момент сбора: он зовёт функцию, которую принёс композиционный корень, а та читает атомарные счётчики сужателя.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MetricName

func MetricName(service string) string

MetricName — имя семейства для названного сервиса.

Отдельная функция, а не литерал по месту: имя серии — контракт с панелями и правилами тревог, и собирать его в пяти местах значило бы завести пять контрактов, которые разъедутся на первом же переименовании.

Types

type Collector

type Collector struct {
	// contains filtered or unexported fields
}

Collector — коллектор величин сужателя одного сервиса.

func New

func New(service string, read func() listnarrow.Counts) *Collector

New собирает коллектор для сервиса `service` (`vpc`, `compute`, `nlb`, `storage`, `registry`) поверх читателя величин.

`read == nil` означает, что сужателя на этой посадке нет вовсе; коллектор всё равно отдаёт ВСЕ четыре полосы нулями. Исчезновение серий сообщило бы собирателю не «сужений не было», а ничего.

func (*Collector) Collect

func (c *Collector) Collect(ch chan<- prometheus.Metric)

Collect отдаёт все четыре полосы, включая нулевые.

func (*Collector) Describe

func (c *Collector) Describe(ch chan<- *prometheus.Desc)

Describe объявляет семейство до первого сбора — серии присутствуют нулями с первой секунды жизни процесса.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL