otel

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Overview

Package otel содержит готовые OpenTelemetry-хуки для draftRAG pipeline.

Index

Constants

View Source
const (
	// SpanAttributeOperation — атрибут span: имя операции pipeline.
	SpanAttributeOperation = "draftrag.operation"
	// SpanAttributeStage — атрибут span: стадия pipeline.
	SpanAttributeStage = "draftrag.stage"
)
View Source
const (
	// MetricStageDurationMS — histogram длительности стадии в миллисекундах.
	MetricStageDurationMS = "draftrag.pipeline.stage.duration_ms"
	// MetricStageErrors — counter ошибок стадии.
	MetricStageErrors = "draftrag.pipeline.stage.errors"
)
View Source
const (
	// MetricLabelOperation — label метрик: имя операции pipeline.
	MetricLabelOperation = "operation"
	// MetricLabelStage — label метрик: стадия pipeline.
	MetricLabelStage = "stage"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Hooks

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

Hooks — OpenTelemetry-реализация `draftrag.Hooks`.

Контракт (v1): - spans: атрибуты `draftrag.operation`, `draftrag.stage`; - metrics: `draftrag.pipeline.stage.duration_ms` и `draftrag.pipeline.stage.errors` с labels `operation`, `stage`.

Важно: hooks вызываются синхронно, поэтому exporter/SDK должны быть неблокирующими.

func NewHooks

func NewHooks(opts HooksOptions) (*Hooks, error)

NewHooks создаёт OpenTelemetry hooks для стадий pipeline draftRAG.

Hooks опциональны: подключите их через `draftrag.PipelineOptions{Hooks: ...}`. Использование не требует форка библиотеки и не меняет поведение pipeline.

func (*Hooks) StageEnd

func (h *Hooks) StageEnd(ctx context.Context, ev domain.StageEndEvent)

StageEnd реализует `Hooks` интерфейс pipeline (domain.Hooks).

func (*Hooks) StageStart

func (h *Hooks) StageStart(ctx context.Context, ev domain.StageStartEvent)

StageStart реализует `Hooks` интерфейс pipeline (domain.Hooks).

В v1 мы не создаём span на старте, т.к. интерфейс hooks не возвращает `context.Context`. Вместо этого создаём ретроспективный stage span на `StageEnd` по измеренной длительности.

type HooksOptions

type HooksOptions struct {
	// TracerProvider — источник tracer'а. Если nil, используется глобальный.
	TracerProvider trace.TracerProvider
	// MeterProvider — источник meter'а. Если nil, используется глобальный.
	MeterProvider metric.MeterProvider

	// TracerName — имя tracer'а. Пустое → дефолт.
	TracerName string
	// MeterName — имя meter'а. Пустое → дефолт.
	MeterName string
}

HooksOptions задаёт конфигурацию OTel hooks.

Jump to

Keyboard shortcuts

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