Documentation
¶
Overview ¶
Package otel содержит готовые OpenTelemetry-хуки для draftRAG pipeline.
Index ¶
Constants ¶
const ( // SpanAttributeOperation — атрибут span: имя операции pipeline. SpanAttributeOperation = "draftrag.operation" // SpanAttributeStage — атрибут span: стадия pipeline. SpanAttributeStage = "draftrag.stage" )
const ( // MetricStageDurationMS — histogram длительности стадии в миллисекундах. MetricStageDurationMS = "draftrag.pipeline.stage.duration_ms" // MetricStageErrors — counter ошибок стадии. MetricStageErrors = "draftrag.pipeline.stage.errors" )
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.