Skip to content

Commit e2580a9

Browse files
authored
feat(metric): Docker container monitoring (#78)
* feat(metric): Docker container monitoring Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * fix(deps): remove duplicated dependencies Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): add Docker metrics endpoint and improve error handling Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): add 'status' and 'running' fields to ContainerMetrics Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): use getContainerName function to extract container name Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * refactor: simplify health check logic in healthCheck function Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): update ContainerMetrics to use Unix timestamps for StartedAt and FinishedAt Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(handler): update docker handler to accept 'all' query parameter - default is false Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): Add health nested object for ContainerMetrics with health status and refactor health check logic Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * fix(metrics): enhance getContainerName function to handle empty names and leading slash Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * fix(metrics): improve error handling in GetDockerMetrics and enhance state check in health logic Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> * feat(metrics): update GetUnixTimestamp to support nanosecond precision and add unit tests Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com> --------- Signed-off-by: Mert Şişmanoğlu <mertssmnoglu@gmail.com>
1 parent d7c9c74 commit e2580a9

6 files changed

Lines changed: 371 additions & 20 deletions

File tree

go.mod

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,68 @@ module github.com/bluewave-labs/capture
33
go 1.23.1
44

55
require (
6+
github.com/docker/docker v28.1.1+incompatible
67
github.com/gin-gonic/gin v1.10.0
78
github.com/mstrYoda/go-arctest v0.0.0-20250422073853-ff9fe79f31d7
89
github.com/shirou/gopsutil/v4 v4.24.9
910
)
1011

1112
require (
13+
github.com/Microsoft/go-winio v0.4.14 // indirect
1214
github.com/bytedance/sonic v1.12.3 // indirect
1315
github.com/bytedance/sonic/loader v0.2.0 // indirect
1416
github.com/cloudwego/base64x v0.1.4 // indirect
1517
github.com/cloudwego/iasm v0.2.0 // indirect
18+
github.com/containerd/log v0.1.0 // indirect
19+
github.com/distribution/reference v0.6.0 // indirect
20+
github.com/docker/go-connections v0.5.0 // indirect
21+
github.com/docker/go-units v0.5.0 // indirect
1622
github.com/ebitengine/purego v0.8.0 // indirect
23+
github.com/felixge/httpsnoop v1.0.4 // indirect
1724
github.com/gabriel-vasile/mimetype v1.4.6 // indirect
1825
github.com/gin-contrib/sse v0.1.0 // indirect
26+
github.com/go-logr/logr v1.4.2 // indirect
27+
github.com/go-logr/stdr v1.2.2 // indirect
1928
github.com/go-ole/go-ole v1.2.6 // indirect
2029
github.com/go-playground/locales v0.14.1 // indirect
2130
github.com/go-playground/universal-translator v0.18.1 // indirect
2231
github.com/go-playground/validator/v10 v10.22.1 // indirect
2332
github.com/goccy/go-json v0.10.3 // indirect
33+
github.com/gogo/protobuf v1.3.2 // indirect
2434
github.com/json-iterator/go v1.1.12 // indirect
2535
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
2636
github.com/leodido/go-urn v1.4.0 // indirect
2737
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
2838
github.com/mattn/go-isatty v0.0.20 // indirect
39+
github.com/moby/docker-image-spec v1.3.1 // indirect
40+
github.com/moby/sys/atomicwriter v0.1.0 // indirect
41+
github.com/moby/term v0.5.2 // indirect
2942
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
3043
github.com/modern-go/reflect2 v1.0.2 // indirect
44+
github.com/morikuni/aec v1.0.0 // indirect
45+
github.com/opencontainers/go-digest v1.0.0 // indirect
46+
github.com/opencontainers/image-spec v1.1.1 // indirect
3147
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
48+
github.com/pkg/errors v0.9.1 // indirect
3249
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
3350
github.com/tklauser/go-sysconf v0.3.12 // indirect
3451
github.com/tklauser/numcpus v0.6.1 // indirect
3552
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
3653
github.com/ugorji/go/codec v1.2.12 // indirect
3754
github.com/yusufpapurcu/wmi v1.2.4 // indirect
55+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
56+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect
57+
go.opentelemetry.io/otel v1.36.0 // indirect
58+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.36.0 // indirect
59+
go.opentelemetry.io/otel/metric v1.36.0 // indirect
60+
go.opentelemetry.io/otel/trace v1.36.0 // indirect
3861
golang.org/x/arch v0.11.0 // indirect
39-
golang.org/x/crypto v0.36.0 // indirect
40-
golang.org/x/net v0.38.0 // indirect
41-
golang.org/x/sys v0.31.0 // indirect
42-
golang.org/x/text v0.23.0 // indirect
43-
google.golang.org/protobuf v1.35.1 // indirect
62+
golang.org/x/crypto v0.38.0 // indirect
63+
golang.org/x/net v0.40.0 // indirect
64+
golang.org/x/sys v0.33.0 // indirect
65+
golang.org/x/text v0.25.0 // indirect
66+
golang.org/x/time v0.11.0 // indirect
67+
google.golang.org/protobuf v1.36.6 // indirect
4468
gopkg.in/yaml.v3 v3.0.1 // indirect
69+
gotest.tools/v3 v3.5.2 // indirect
4570
)

0 commit comments

Comments
 (0)