Categorygithub.com/go-faster/simon
modulepackage
0.6.0
Repository: https://github.com/go-faster/simon.git
Documentation: pkg.go.dev

# README

simon

Observability load testing and simulation, under construction.

Supported platforms: {linux, windows, darwin}-{amd64, arm64, riscv64}

Observability

  • Logs
  • Metrics
  • Traces
  • Context propagation
  • Profiling
  • Health checks
    • Liveness
    • Readiness
    • Other probes

hubble.png

Deployment

  • Kubernetes deployment
  • Helm chart

Run

Docker

docker run -i -t ghcr.io/go-faster/simon:latest
{"level":"info","ts":1680181590.1318264,"logger":"metrics","caller":"app/metrics.go:286","msg":"No metrics exporter is configured by OTEL_METRICS_EXPORTER"}
{"level":"info","ts":1680181590.134922,"logger":"metrics","caller":"app/metrics.go:319","msg":"No traces exporter is configured by OTEL_TRACES_EXPORTER"}
{"level":"info","ts":1680181590.1362665,"logger":"metrics","caller":"app/metrics.go:356","msg":"Propagators configured","propagators":["tracecontext","baggage"]}
{"level":"info","ts":1680181590.1375117,"logger":"metrics","caller":"app/metrics.go:112","msg":"Registering pprof routes","routes":["profile","symbol","trace","goroutine","heap","threadcreate","block"]}
{"level":"info","ts":1680181590.139126,"logger":"metrics","caller":"app/metrics.go:379","msg":"Metrics initialized","otel.resource":"process.runtime.description=go version go1.20.2 linux/riscv64,process.runtime.name=go,process.runtime.version=go1.20.2,service.name=simon,service.namespace=go-faster,telemetry.sdk.language=go,telemetry.sdk.name=opentelemetry,telemetry.sdk.version=1.14.0","metrics.http.addr":"localhost:9464"}
{"level":"info","ts":1680181590.1406643,"logger":"metrics","caller":"app/metrics.go:62","msg":"Starting metrics server"}
{"level":"info","ts":1680181591.1405013,"caller":"simon/main.go:28","msg":"Hello, world!"}
{"level":"info","ts":1680181592.1402662,"caller":"simon/main.go:28","msg":"Hello, world!"}

Pod

kubectl -n sandbox apply -f _deploy/

Environment variables

See General SDK Configuration for OpenTelemetry.

NameDescriptionExampleDefault
METRICS_ADDRAddress with metrics and pproflocalhost:9464To prometheus addr
PPROF_ROUTESList of enabled pprof routescmdline,profileprofile, symbol, trace, goroutine, heap, threadcreate, block
OTEL_LOG_LEVELLog leveldebuginfo
OTEL_EXPORTER_PROMETHEUS_HOSTHost of prometheus addr0.0.0.0localhost
OTEL_EXPORTER_PROMETHEUS_PORTPort of prometheus addr90909464
OTEL_METRICS_EXPORTERMetrics exporter to useprometheusnone
OTEL_TRACES_EXPORTERTraces exporter to usejaegernone
OTEL_EXPORTER_JAEGER_AGENT_HOSTJaeger exporter hostjaeger.svc.locallocalhost
OTEL_EXPORTER_JAEGER_AGENT_PORTJaeger exporter port68316831
OTEL_SERVICE_NAMEOTEL Service nameappunknown_service
OTEL_RESOURCE_ATTRIBUTESOTEL Resource attributesservice.namespace=pfm
OTEL_PROPAGATORSOTEL Propagators (only tracecontext and baggage supported, none to disable)nonetracecontext,baggage
Environment variableOptionDefault value
OTEL_EXPORTER_OTLP_ENDPOINT OTEL_EXPORTER_OTLP_TRACES_ENDPOINTWithEndpoint WithInsecurehttps://localhost:4317 or https://localhost:4318[^1]
OTEL_EXPORTER_OTLP_CERTIFICATE OTEL_EXPORTER_OTLP_TRACES_CERTIFICATEWithTLSClientConfig
OTEL_EXPORTER_OTLP_HEADERS OTEL_EXPORTER_OTLP_TRACES_HEADERSWithHeaders
OTEL_EXPORTER_OTLP_COMPRESSION OTEL_EXPORTER_OTLP_TRACES_COMPRESSIONWithCompression
OTEL_EXPORTER_OTLP_TIMEOUT OTEL_EXPORTER_OTLP_TRACES_TIMEOUTWithTimeout10s

METRICS_ADDR

ValueMETRICS_ADDR
Defaultlocalhost:9464
DescriptionAddress with metrics and pprof
Example0.0.0.0:9464

PPROF_ROUTES

ValuePPROF_ROUTES
Defaultprofile, symbol, trace, goroutine, heap, threadcreate, block
DescriptionList of enabled pprof routes

# Packages

No description provided by the author