67 Commits

Author SHA1 Message Date
Gregor Jasny 5b465a4e6c pull: Announce utf-8 content encoding
Closes: #377
2021-03-09 13:01:15 +01:00
Gregor Jasny 5699348faa feat(cmake): Generate pkg-config files
Fixes: #447
2021-03-04 21:15:31 +01:00
Gregor Jasny f448b2c3de feat(iwyu): Organize includes with include-what-you-use 2021-03-03 22:11:10 +01:00
Gregor Jasny af8449400d Merge pull request #435 from jupp0r/improve-example
pull: Add better example
2021-01-31 20:57:57 +01:00
Gregor Jasny 3c5d3c5775 pull: improve code coverage 2020-12-27 17:50:36 +01:00
Gregor Jasny b8db5e468d pull: don't trigger failing authentication due to civetweb/civetweb#954 2020-12-27 13:06:58 +01:00
Gregor Jasny 114f756f19 pull: don't set auth handler to nullptr to avoid civetweb bug 2020-12-27 13:06:58 +01:00
Gregor Jasny eae808770a pull: test authentication and compression 2020-12-26 23:42:48 +01:00
Gregor Jasny fda05ed105 pull: Add better example
Closes: #423
2020-12-26 15:46:38 +01:00
Mark Klein (mklein201) bd887dafbd pull: Add RemoveCollectable
Closes: #415
2020-12-17 19:32:14 +01:00
Gregor Jasny 87f93a1e38 pull: Work-around assertion and race-condition in auth handler 2020-12-16 21:18:59 +01:00
Gregor Jasny 9638191bc9 pull: Add integration test for exposer 2020-12-16 20:10:49 +01:00
Gregor Jasny fa49acc155 pull: Remove expired weak pointers to avoid leak 2020-12-14 21:33:09 +01:00
Gregor Jasny 1101626fb7 pull: do not export BasicAuthHandler 2020-12-13 16:58:53 +01:00
Gregor Jasny bb017ec15a pull: Use internal base64 decoding function to avoid dependency (#417) 2020-11-23 14:44:04 -08:00
Gregor Jasny 72b4d19943 pull: work-around missing winsock lib in civetweb
Fixes: #401
2020-11-15 20:27:22 +01:00
Gregor Jasny d68ddc2fa4 Merge pull request #390 from mlsna/fix-collectables-race
Avoid race when registering a collectable
2020-10-01 09:02:03 +02:00
Gregor Jasny d0e1056016 core: Explicitly link against libatomic when needed
Closes: #394
2020-09-27 16:34:40 +01:00
Michael Mlsna 2501c04f80 Avoid race when registering a collectable
A thread registering a `Collectable` with the `Exposer` may end up
invalidating iterators to the `collectables_` vector inside `Endpoint`
while a `CivetServer` handler thread is iterating the vector.

Move the `collectables_` vector to `MetricsHandler` where all accesses
can be guarded by a mutex.
2020-09-10 17:52:04 -05:00
Gregor Jasny 4fc553e692 Use header-only cppcodec lib and fix build
Closes: #372
2020-06-07 12:01:29 +02:00
James Harrison 498c3c978c Add support for HTTP Basic Auth on scraping endpoints
Adds a simple HTTP Basic Auth handler which can be registered to
endpoints.

This provides a mechanism for extracting user/password from the auth
header; all further authentication logic is left to the user.
2020-06-05 11:49:04 +01:00
Gregor Jasny 8b45141a1c Extend existing exposer interface 2020-05-26 08:44:48 +02:00
James Harrison cc282f9985 Add support for serving multiple paths
Allows users to specify multiple Endpoints, and register Collectables
to each Endpoint. E.g.,

 /metrics

and

 /metricsHighCardinality

Can both be served by the same MultiExposer, but may expose different
Collectables. This may be useful if, for example, one wants to scrape
groups of metrics with different frequencies.

Each Endpoint must have a unique URI.
2020-05-13 14:56:41 +01:00
Gregor Jasny 4ee54a1651 chore(pull): refactor collection code into metrics_collector 2020-04-25 15:50:34 +02:00
Gregor Jasny eef4b55b27 fix: Properly export civetweb object library 2020-03-20 18:28:54 +01:00
Gregor Jasny c06e0ef4e4 pull: Add support for https and client certificates
Issue: #329
2020-03-17 18:39:12 +01:00
Gregor Jasny 09d36a5037 ci: use vcpkg for external dependencies 2020-03-16 20:34:00 +01:00
Gregor Jasny 3018a51030 feat(pull): Add getter for listening ports
Closes: #334
2020-02-12 21:01:44 +01:00
Gregor Jasny 5a3ee66c7e fix(symbols): Fix Windows and Bazel symbol visibility 2019-10-18 23:19:17 +02:00
Gregor Jasny 70a1cfd60a Merge pull request #305 from jupp0r/code-format
Code format
2019-10-18 09:04:13 +02:00
Gregor Jasny c54cb06d04 chore(buildifier): Format everything 2019-10-17 18:14:02 +02:00
Gregor Jasny c216ae7ae9 chore(clang-format): Format everything 2019-10-17 18:13:24 +02:00
Gregor Jasny 815bfb9b29 chore(bazel): Use local_defines instead of copts 2019-10-17 17:58:31 +02:00
Gregor Jasny b6a1b4c2fc Implement symbol visibility build system agnostic
Issue: #223
2019-08-31 19:55:13 +02:00
Gregor Jasny 538ed3af0d Add (shared) library versioning
Closes: #223
2019-08-31 18:21:11 +02:00
matthew a34ead7027 include fixes 2019-08-08 09:52:41 -07:00
Gregor Jasny 396a72d3b4 Fix Telegraf scrape test 2019-07-01 18:33:51 +02:00
Gregor Jasny b0f012fe98 Merge pull request #240 from khvorov/master
configure number of threads used by Exposer
2018-12-21 21:50:55 +01:00
Carlos Gomes Martinho 6cdfadfa73 fix(cmake): fix the target name of civetweb to be lowercase as upstream 2018-12-20 09:22:10 +01:00
Dmitry Khvorov de62eac55b configure number of threads used by Exposer 2018-12-10 17:59:17 +08:00
Jerry Crunctime e38d0206c9 Fix all warnings 2018-12-08 11:15:23 +01:00
Gregor Jasny e85603a41f Reformat everything
using clang-format version 8.0.0 (tags/google/stable/2018-10-04)
2018-12-06 20:43:41 +01:00
Gregor Jasny 9ec4a40f53 Add linter test for sample server 2018-11-11 21:58:32 +01:00
Gregor Jasny 3448ef0754 Breaking Change: Use recommended metric naming
The sample_server is now `promtool check`-clean.

See: https://prometheus.io/docs/practices/naming/

Issue: #89
2018-11-11 21:39:10 +01:00
mapx 3ebb29c0e4 Use Starlark http_archive and a widespread version of zlib
This replaces the native http_archive and new_http_archive rules. The old rules will be disabled by default in a future version of Bazel (possibly 0.20).
2018-11-10 08:48:03 +00:00
Gregor Jasny 998bfd7b97 bazel: rename zlib cc_library to z
Closes: #211
2018-11-05 17:32:52 +01:00
Gregor Jasny 74353a8b3c Merge pull request #210 from jupp0r/no-system-libs-for-bazel
Do not rely on system libs for bazel
2018-11-04 18:36:22 +01:00
Gregor Jasny 6bc9b933d7 bazel: fetch zlib as external library 2018-11-04 17:07:26 +01:00
Gregor Jasny 1d38a0a37d CMake: Use imported Threads::Threads library 2018-11-04 12:35:50 +01:00
Gregor Jasny 69e62780e7 Bazel: Also build shared libraries
Issue: #181
2018-11-03 17:57:16 +01:00