Documentation
¶
Overview ¶
Package oteljob berisi helper observability untuk job queue: mencatat dispatch yang gagal supaya tidak hilang diam-diam.
Index ¶
Constants ¶
const ( ReasonPanic = "panic" ReasonError = "error" )
Reason untuk RecordDispatchFailure.
const DispatchFailedMetric = "job.dispatch.failed"
DispatchFailedMetric adalah nama counter yang dicatat RecordDispatchFailure.
Variables ¶
This section is empty.
Functions ¶
func RecordDispatchFailure ¶
func RecordDispatchFailure(ctx context.Context, job, reason string, detail any, fields ...golib.Map)
RecordDispatchFailure mencatat kegagalan dispatch job queue (panic maupun error dari Dispatch()) supaya tidak hilang diam-diam:
- log error ke runtime.log + OTEL, membawa trace.id bila ctx punya span
- event "job.dispatch.failed" di span aktif (span TIDAK ditandai Error — proses pemanggil, mis. request approval, tetap sukses)
- counter metric job.dispatch.failed{job, reason} untuk alert
job: nama job/queue. reason: ReasonPanic atau ReasonError. detail: error atau nilai panic. fields: identitas bisnis job yang gagal (mis. log.Map{"order_id": id}); di-mask, dan TIDAK dijadikan label metric (cardinality).
func RecordDispatchPanic ¶
RecordDispatchPanic dipakai di defer untuk menggantikan `defer func() { _ = recover() }()`: panic tetap ditelan (perilaku lama dipertahankan) tetapi tercatat. Harus dipanggil LANGSUNG di defer:
defer oteljob.RecordDispatchPanic(ctx, "DispatchTransferGLDebit", log.Map{"order_id": orderId})
Types ¶
This section is empty.