Documentation
¶
Overview ¶
Package oteltelemetry menginisialisasi OpenTelemetry (trace, log, metric) untuk service Goravel dalam satu panggilan, menggantikan TelemetryServiceProvider yang sebelumnya di-copy-paste ke setiap service.
Konfigurasi exporter, TLS, sampling, dan resource mengikuti environment variable standar OpenTelemetry, sehingga bisa diatur dari helm chart tanpa ubah kode:
OTEL_EXPORTER_OTLP_ENDPOINT http://otel-collector:4318 (scheme http → tanpa TLS, https → TLS) OTEL_EXPORTER_OTLP_HEADERS header tambahan (mis. auth ke collector) OTEL_TRACES_SAMPLER default parentbased_always_on; mis. parentbased_traceidratio OTEL_TRACES_SAMPLER_ARG rasio sampling, mis. 0.1 OTEL_SERVICE_NAME override nama service (default: APP_NAME) OTEL_RESOURCE_ATTRIBUTES mis. service.version=1.2.3,k8s.namespace.name=mks
Penggunaan di provider Goravel:
func (t *TelemetryServiceProvider) Boot(app foundation.Application) {
if !facades.Config().GetBool("OTEL_ENABLED", false) {
return
}
shutdown, err := oteltelemetry.Setup(context.Background(), oteltelemetry.ConfigFromEnv())
if err != nil {
fmt.Printf("[telemetry] OTEL init failed: %v\n", err)
return
}
app.Singleton(oteltelemetry.ShutdownKey, func(foundation.Application) (any, error) { return shutdown, nil })
}
dan saat proses berhenti (SIGTERM):
oteltelemetry.Shutdown(5 * time.Second)
Index ¶
Constants ¶
const ShutdownKey = "otelShutdown"
ShutdownKey adalah key container Goravel yang disarankan untuk menyimpan fungsi shutdown.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
// ServiceName dipakai sebagai service.name (di-override OTEL_SERVICE_NAME bila diset).
ServiceName string
// Environment dipakai sebagai deployment.environment.
Environment string
// MetricInterval interval export metric. Default 30s.
MetricInterval time.Duration
// DisableRuntimeMetrics mematikan Go runtime metrics (goroutine, heap, GC).
DisableRuntimeMetrics bool
}
Config untuk Setup. Field kosong memakai default.
func ConfigFromEnv ¶
func ConfigFromEnv() Config
ConfigFromEnv membaca APP_NAME dan APP_ENV dari environment proses.
type ShutdownFunc ¶
ShutdownFunc mem-flush dan menutup semua provider yang dibuat oleh Setup.
func Setup ¶
func Setup(ctx context.Context, cfg Config) (ShutdownFunc, error)
Setup membuat TracerProvider, LoggerProvider, dan MeterProvider dengan exporter OTLP/HTTP, lalu memasangnya sebagai provider global beserta propagator W3C TraceContext + Baggage. Jika salah satu gagal dibuat, provider yang sudah terbentuk ditutup kembali dan error dikembalikan (global tidak diubah).