# Prometheus.jl changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [v1.4.0] - 2024-07-12 ### Changed - The public API of Prometheus.jl is now marked `public` in Julia versions that support it. The public names are: `CollectorRegistry`, `register`, `unregister`, `Counter`, `Gauge`, `Histogram`, `Summary`, `GCCollector`, `ProcessCollector`, `inc`, `dec`, `set`, `set_to_current_time`, `observe`, `@inprogress`, `@time`, `Family`, `labels`, `remove`, `clear`, and `expose`. ([#19]) ## [v1.3.0] - 2023-11-29 ### Added - `Base.getindex` is overloaded for the `Prometheus.Family` collector to have the same meaning as `Prometheus.labels`. `family[labels]` is equivalent to `Prometheus.labels(family, labels)`. ([#13]) ### Fixed - The `ProcessCollector` is now initialized on first use in a given process. This fixes a bug where values cached during precompilation (e.g. system boot time) would be used instead of the current values. ([#14]) ## [v1.2.0] - 2023-11-22 ### Added - The fourth basic collector, `Histogram`, have been added. ([#10]) ## [v1.1.0] - 2023-11-13 ### Added - New macro `Prometheus.@time collector ` for timing `` and pass the elapsed time to the collector. `` can be a single expression, a block, or a function *definition*. In the latter case, all calls to the function will be instrumented (no matter the call site). See documentation for more details. ([#6]) - New macro `Prometheus.@inprogress collector ` to track number of in-progress concurrent evalutations of ``. Just like `Prometheus.@time`, valid ``s are single expressions, blocks, and function definitions. See documentation for more details. ([#6]) - New ways to specify label names and label values in `Prometheus.Family{C}`. Label names can now be passed to the constructor as i) a tuple of strings or symbols, ii) a named tuple type (names used for label names), or iii) a custom struct type (field names used for label names). Similarly, label values (passed to e.g. `Prometheus.labels`) can be passed as i) tuple of strings, ii) named tuple, iii) struct instance. See documentation for examples and more details. ([#7]) ## [v1.0.1] - 2023-11-06 ### Fixed - Fixed verification of metric names and label names. - Correctly escape special characters in exposition (specifically help and label values). ## [v1.0.0] - 2023-11-05 First stable release of Prometheus.jl: - Supported basic collectors: Counter, Gauge, Summary - GCCollector for metrics about allocations and garbage collection - ProcessCollector for process metrics such as CPU time and I/O operations (requires the /proc file system). - Support for default and custom collector registries - Support for metric labeling - Support for exposing metrics to file and over HTTP - Support for gzip compression when exposing over HTTP See [README.md](README.md) for details and documentation. [v1.0.0]: https://github.com/fredrikekre/Prometheus.jl/releases/tag/v1.0.0 [v1.0.1]: https://github.com/fredrikekre/Prometheus.jl/releases/tag/v1.0.1 [v1.1.0]: https://github.com/fredrikekre/Prometheus.jl/releases/tag/v1.1.0 [v1.2.0]: https://github.com/fredrikekre/Prometheus.jl/releases/tag/v1.2.0 [v1.3.0]: https://github.com/fredrikekre/Prometheus.jl/releases/tag/v1.3.0 [#6]: https://github.com/fredrikekre/Prometheus.jl/issues/6 [#7]: https://github.com/fredrikekre/Prometheus.jl/issues/7 [#10]: https://github.com/fredrikekre/Prometheus.jl/issues/10 [#13]: https://github.com/fredrikekre/Prometheus.jl/issues/13 [#14]: https://github.com/fredrikekre/Prometheus.jl/issues/14