Commit graph

42 commits

Author SHA1 Message Date
Lars Strojny
8a0061428d
Move conditions to the top 2022-11-24 20:21:10 +01:00
Lars Strojny
f30dfe0cee
Use constant instead of magic number 2022-11-24 20:18:48 +01:00
Lars Strojny
e5b3a90fae
Use string concatenation instead 2022-11-24 19:59:03 +01:00
Lars Strojny
d25207923c
Fix symbol name conflict 2022-11-24 19:58:07 +01:00
Lars Strojny
f45df5d422
Clean up prefix handling 2022-11-24 19:53:03 +01:00
Lars Strojny
65304798de
Memoized renderering (#37)
Pre-render metrics on discovery once and then reuse rendered response.
2022-11-24 19:35:02 +01:00
Lars Strojny
565f423dd9
Extract stringReverse() function 2022-11-24 19:24:00 +01:00
Lars Strojny
7c7673f1c2
Fix code smells (#36)
Fix code smells detected by SonarCloud
2022-11-23 14:30:23 +01:00
dependabot[bot]
f70de293a5
Bump hap-nodejs from 0.10.4 to 0.11.0 (#31) 2022-11-18 13:11:43 +01:00
Lars Strojny
261fa74ac9
Add configuration option for the metric server interface (#25)
Add a configuration option `interface` to allow configuring where the
HTTP metric server should bind to.
2022-11-17 13:15:07 +01:00
Lars Strojny
ce8876793d
Fall back to IPv4 if EAFNOSUPPORT (#24)
If listening to `::` fails, try `0.0.0.0` instead. Addresses #22
2022-11-16 22:47:41 +01:00
Lars Strojny
f8007b55ca
Add experimental support for basic auth and TLS (#23)
Allows restricting access to the monitoring endpoint using basic auth
and configure TLS certificates.
2022-11-16 22:19:08 +01:00
Lars Strojny
479fbe5727 Refactor internal APIs 2022-11-14 01:20:53 +01:00
Lars Strojny
34be5bbca2 Implement consistent request logging 2022-11-13 13:34:33 +01:00
Lars Strojny
8102144b85 Explicit type imports 2022-11-13 13:34:09 +01:00
Lars Strojny
b74721ee76
Handle null values in characteristics (#20)
Apparently `characteristic.value` can also be null. Let’s handle it
properly. Fixes #19
2022-11-13 11:13:13 +01:00
Lars Strojny
52efa69bf0
Automate code generation for config schema (#16)
Use a fork of https://github.com/lstrojny/json-schema-to-zod to generate
the boundary check for the config automatically.
2022-11-10 13:06:16 +01:00
Lars Strojny
1088a78079
Strict type imports (#17)
When a symbols is only used as a type, require `import type {…}`
2022-11-10 13:00:45 +01:00
Lars Strojny
822f0da2eb
Set charset in metrics content type (#15)
Send `Content-Type: text/plain; charset=utf-8; version=0.0.4` instead of
`Content-Type: text/plain; version=0.0.4` so that special characters in
names have a chance to work.
2022-11-10 11:10:31 +01:00
Lars Strojny
f6bc8ca90c
Use code generation for UUID service map (#14)
Instead of introspecting *hap-nodejs* at runtime for UUID to service
mapping, generate the map during build time.
2022-11-10 11:07:31 +01:00
Lars Strojny
71e45a3d8c
More user-friendly (and developer-friendly) zod error reporting (#12)
Show each error message from zod and include an excerpt of the data
around the failing path if possible
2022-11-09 21:36:23 +01:00
Lars Strojny
2bd799ca9c
Integration tests for the fastify HTTP adapter (#11) 2022-11-09 19:08:24 +01:00
Lars Strojny
eead518f95
Gracefully handle unknown service UUIDs (#10) 2022-11-09 14:58:03 +01:00
Lars Strojny
72761ceee6
Support "tlv8" and "data" characteristic formats (#8) 2022-11-09 14:10:50 +01:00
Lars Strojny
e64b621336 Mention where the escape functions come from 2022-11-09 00:41:15 +01:00
Lars Strojny
2596c9f4ea Remove bundled hap-nodejs dependency 2022-11-08 23:58:46 +01:00
Lars Strojny
25b9afa1d2 Run tests via github actions 2022-11-08 22:59:00 +01:00
Lars Strojny
84761dfa93 Replace runtypes with zod, validate config, stricter eslint config 2022-11-08 19:13:34 +01:00
Lars Strojny
4a7d6ff6de Allow configuring the prefix 2022-11-08 14:43:49 +01:00
Lars Strojny
900f528b95 Rename port setting 2022-11-08 14:26:08 +01:00
Lars Strojny
78a8972bb0 Expose bools as metrics as well 2022-11-08 01:20:46 +01:00
Lars Strojny
f1b48575cb Use hap-nodejs instead 2022-11-07 23:43:44 +01:00
Lars Strojny
ba3786bf6d Fix linting issues 2022-11-07 23:02:24 +01:00
Lars Strojny
e338c982d2 Prometheus wants counter, not count 2022-11-07 22:41:52 +01:00
Lars Strojny
7fd1c5a03c Extract prometheus server 2022-11-07 22:31:17 +01:00
Lars Strojny
d0b9b6a36e Rename /probe to /metrics 2022-11-07 21:01:21 +01:00
Lars Strojny
ff7fd44f2c Extract rendering 2022-11-07 20:50:58 +01:00
Lars Strojny
4b4f8e8d0f Remove instance attribute 2022-11-07 19:32:38 +01:00
Lars Strojny
60be04925e Fix Promise issue 2022-11-07 19:30:55 +01:00
Lars Strojny
8e183b9fb7 Listen not only on localhost 2022-11-07 18:26:58 +01:00
Lars Strojny
00dd20559a Initial version 2022-11-07 15:23:48 +01:00
Lars Strojny
dd4a135022
Initial commit 2022-11-06 13:04:30 +01:00