Commit Graph

58 Commits

Author SHA1 Message Date
Cody Lee 832334655c
Fix health check port binding conflict (issue #892)
The Docker health check was attempting to bind to ports already in use by
the running application, causing "address already in use" errors. This fix
adds a health check mode that skips network binding operations while still
validating output configuration (listen addresses, paths, etc.).

Changes:
- Add health check mode flag in pkg/poller/outputs.go
- Update prometheus and webserver DebugOutput() to skip port binding in health check mode
- Maintain full configuration validation without network conflicts

Fixes #892

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-09 08:11:21 -06:00
Cody Lee b960695f3b
Add Docker health check support
Implements #406 by adding a --health CLI flag and HEALTHCHECK instruction
to the Dockerfile. This allows Docker and container orchestration platforms
to monitor container health automatically.

Changes:
- Added --health flag that validates configuration and plugin connectivity
- Implemented HealthCheck() method in pkg/poller/commands.go
- Updated Dockerfile with HEALTHCHECK instruction (30s interval, 10s timeout)
- Updated MANUAL.md with --health flag documentation
- Added health check documentation to Docker README
- Added comments to docker-compose examples about built-in health check

The health check:
- Validates configuration file is found and parseable
- Ensures at least one input and one enabled output are configured
- Performs basic validation on enabled outputs
- Returns exit code 0 (healthy) or 1 (unhealthy)
- Runs silently for Docker compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-08 13:09:10 -06:00
Cody Lee 6f4384c18d
fix linting 2025-12-03 11:40:21 -06:00
Cody Lee 4b19b873ab
address issue 2025-04-04 08:33:58 -05:00
Cody Lee 7e87e7f4fb
rename package per per comment, add comments, and drop unnecessary compile time check 2023-08-03 09:27:09 -05:00
Cody Lee ffb8579369
add integration test guard;
datadog integration test works

influx package tests

update unifi version

golanglint-ci and address *all* issues.

all tests pass

bump unifi version
2023-07-31 14:40:33 -05:00
Cody Lee c002283387
fixes the webserver default file path issues 2023-04-13 09:56:24 -05:00
Cody Lee 3768c53512
CLI works 2022-12-22 18:16:43 -06:00
Cody Lee db9bcd5687
add new interface for testing 2022-12-22 17:44:39 -06:00
Cody Lee ea64bbad45
parallize input initialization to speed up startup time for large number of inputs 2022-12-18 09:00:55 -06:00
Cody Lee fded91ce40
fixed start loop 2022-12-11 13:00:40 -06:00
Cody Lee 4259d4f396
fix the default missing config based off example config, this was affecting #443 2022-12-09 10:01:47 -06:00
Cody Lee bd51cf59f3
move to a common pattern on output plugins to catch common issues 2022-12-05 22:00:48 -06:00
Cody Lee 247cc868b3
go 1.19 interface{} -> any 2022-12-03 16:32:12 -06:00
Cody Lee 1900e69d7a
all to pkg 2022-12-02 20:48:01 -05:00
davidnewhall2 5e203701b5 initial 2019-12-28 17:08:16 -08:00
davidnewhall2 bd0680b92a Add DPI collection 2019-12-27 23:59:16 -08:00
davidnewhall2 6facff1337 deps 2019-12-25 01:02:36 -08:00
davidnewhall2 84edadaa94 Make a new docker image 2019-12-24 23:43:49 -08:00
davidnewhall2 de16ba2399 fixes 2019-12-20 02:44:53 -08:00
davidnewhall2 17e7c8edb3 allow dynamic controller scrapes 2019-12-19 19:59:51 -08:00
davidnewhall2 1dd5b4761c Update deps 2019-12-19 00:29:56 -08:00
davidnewhall2 9022ab288d allow pulling specific sites through output plugins 2019-12-17 02:39:36 -08:00
davidnewhall2 da75406310 fixes 2019-12-17 02:09:30 -08:00
davidnewhall2 d3d420597e make dumper work 2019-12-17 01:31:30 -08:00
davidnewhall2 44c544d8e1 Add dynamic plugin support 2019-12-16 03:11:40 -08:00
davidnewhall2 0b8473657e convert input to plugin 2019-12-15 20:56:42 -08:00
davidnewhall2 4e48247f54 fix tests 2019-12-15 13:15:00 -08:00
davidnewhall2 1def43a4be trimming 2019-12-15 03:27:34 -08:00
davidnewhall2 072d0689d0 fix import 2019-12-15 02:57:08 -08:00
davidnewhall2 ac39d1727f make output plugins call in to initialize 2019-12-15 02:52:43 -08:00
davidnewhall2 60d645c1a7 re-do re-auth 2019-12-14 20:01:51 -08:00
davidnewhall2 0462bb7669 remove naked return 2019-12-14 19:42:03 -08:00
davidnewhall2 510251252b update docs 2019-12-14 19:37:41 -08:00
davidnewhall2 4f987d3225 fixes 2019-12-14 18:55:10 -08:00
davidnewhall2 062fb797de should be good 2019-12-14 18:31:13 -08:00
davidnewhall2 e220610df7 nearly there 2019-12-14 18:10:35 -08:00
davidnewhall2 e421306b3e Merge remote-tracking branch 'origin/master' into dn2_multi_controller 2019-12-14 16:29:45 -08:00
davidnewhall2 f4ae4fc5e5 switch to config package 2019-12-14 16:29:29 -08:00
Ben Kochie e575ee51ec
Use the same namespace for collector and version.
Signed-off-by: Ben Kochie <superq@gmail.com>
2019-12-14 10:02:45 +01:00
Ben Kochie e21c3de5a2
Add a build info metric to Prometheus
Include `unifi_poller_build_info` as a Prometheus metric.

Signed-off-by: Ben Kochie <superq@gmail.com>
2019-12-13 23:56:14 +01:00
davidnewhall2 b8d9ac9f88 not sure how far I got.. 2019-12-13 14:17:28 -08:00
davidnewhall2 539723ece1 a litle lint 2019-12-11 02:25:26 -08:00
davidnewhall2 d47b569a49 fix nil pointer 2019-12-11 01:47:32 -08:00
davidnewhall2 8aa071935e add lock to getunifi 2019-12-11 01:14:09 -08:00
davidnewhall2 65dfedcf27 got it 2019-12-10 01:01:54 -08:00
davidnewhall2 1f2cafad8d pass collector errors up 2019-12-10 00:18:51 -08:00
davidnewhall2 2bb38b900e re-arrange pieces 2019-12-09 21:23:18 -08:00
davidnewhall2 0f02bb3031 trigger docker build/tag 2019-12-09 02:15:03 -08:00
davidnewhall2 24197c1ba3 add a retry 2019-12-09 00:49:25 -08:00