477518e5eb
API instrumentation - metrics and logging * api instrumentation prometheus metrics and logging for all routes * Merge branch 'main' of bitbucket.org:aarete/query-orchestration into feature/prometheus * add log_level and sync the config initialize * docs * cleanup * add to compose:up:test * docs for prometheus testing * custom metrics * cleanup * merge main * add tests * cleanup docs * cleanup * lint * fix unit tests (attempt) * fix tests * resolvesetlogger * expose 8080 * compose changes * bugfixesformichael * don't build _test * merge in main * job_sync_runner
32 lines
1.9 KiB
Markdown
32 lines
1.9 KiB
Markdown
# Api related artifacts
|
|
|
|
## Prometheus metrics
|
|
Prometheus metrics are exposed for all api endpoints automatically at the standard `/metrics` endpoint. (http://localhost:8080/metrics)
|
|
|
|
## Swagger API documentation
|
|
Automatic API docs are generated and exposed for all routes at http://localhost:8080/swagger/index.html when the api server is running.
|
|
|
|
## Logging
|
|
Structured logging is built into all API routes automatically.
|
|
|
|
So for example here is a what a few API hits on queryService look like in the logs when using text (as opposed to json)
|
|
|
|
```bash
|
|
____ __
|
|
/ __/___/ / ___
|
|
/ _// __/ _ \/ _ \
|
|
/___/\__/_//_/\___/ v4.13.3
|
|
High performance, minimalist Go web framework
|
|
https://echo.labstack.com
|
|
____________________________________O/_______
|
|
O\
|
|
⇨ http server started on [::]:8080
|
|
time=2025-02-05T13:38:32.484-08:00 level=INFO msg="HTTP request" method=GET uri=/metrics status=200 latency=2.713792ms error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.792-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/index.html status=200 latency=490.625µs error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.803-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/swagger-ui.css status=200 latency=738.083µs error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.805-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/swagger-ui-standalone-preset.js status=200 latency=887.875µs error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.807-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/swagger-ui-bundle.js status=200 latency=3.854042ms error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.871-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/doc.json status=200 latency=1.163167ms error=<nil> remote_ip=::1
|
|
time=2025-02-05T13:38:39.871-08:00 level=INFO msg="HTTP request" method=GET uri=/swagger/favicon-32x32.png status=200 latency=60.875µs error=<nil> remote_ip=::1
|
|
|
|
``` |