Skip to content

Commit

Permalink
Feature: Prometheus Middleware (#1791)
Browse files Browse the repository at this point in the history
* base prometheus middleware

* rabbit prometheus middleware

* fixed always message ack in the absence of errors

* small refactoring, redis metrics

* kafka prometheus

* str statuses -> StrEnums

* fix kafka tests

* confluent prometheus

* nats prometheus

* edit message count in process & fix settings provider for Nats KV and Nats OS

* importorskip in tests

* doc & ruff & mypy

* docs: generate API References

* clarifications added

* pushback tests fixed

* lint fixed

* lint fixed

* number of tests reduced & fix confluent mark

* test cases renamed

* confluent tests fixed

* documentation addition

* updated SUMMARY.md

* docs: generate API References

* trailing-whitespace in index.md

* deleted pragma: no-cover

* tests for getting started code examples

* Revert "tests for getting started code examples"

This reverts commit b54950d.

* MetricsManager abstraction added and used in middleware

* fixed an error when there was no exchange in tests

* documentation has been corrected due to the renaming of metrics

* docs: generate API References

* fixed type annotations

* added app_name label in index.md

* removed extra space in metric doc

* fixed status in add_published_message

* fixed buckets type

* test for implementing metrics on a real prometheus_client

* small tests refactoring

* changed metrics_prefix default value

* **kwargs in get_broker mtehod

* readable params in tests

* simplified annotation

* EMPTY as metrics_prefix default value

* fixed test_observe_received_messages_size

* apply_types=False as default in get_broker

* external links in prometheus/index.md

* fixed doc

* fixed params naming

* fix: revert acknowledgement changes

* lint: fix precommit

* chore: bump version

* app_name EMPTY is default

---------

Co-authored-by: roma-frolov <[email protected]>
Co-authored-by: Nikita Pastukhov <[email protected]>
Co-authored-by: Pastukhov Nikita <[email protected]>
  • Loading branch information
4 people authored Oct 20, 2024
1 parent 5812e29 commit 975d182
Show file tree
Hide file tree
Showing 97 changed files with 2,960 additions and 14 deletions.
60 changes: 60 additions & 0 deletions docs/docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ search:
- [CLI](getting-started/cli/index.md)
- [ASGI](getting-started/asgi.md)
- [OpenTelemetry](getting-started/opentelemetry/index.md)
- [Prometheus](getting-started/prometheus/index.md)
- [Logging](getting-started/logging.md)
- [Config Management](getting-started/config/index.md)
- [Task Scheduling](scheduling.md)
Expand Down Expand Up @@ -523,6 +524,15 @@ search:
- [telemetry_attributes_provider_factory](api/faststream/confluent/opentelemetry/provider/telemetry_attributes_provider_factory.md)
- parser
- [AsyncConfluentParser](api/faststream/confluent/parser/AsyncConfluentParser.md)
- prometheus
- [KafkaPrometheusMiddleware](api/faststream/confluent/prometheus/KafkaPrometheusMiddleware.md)
- middleware
- [KafkaPrometheusMiddleware](api/faststream/confluent/prometheus/middleware/KafkaPrometheusMiddleware.md)
- provider
- [BaseConfluentMetricsSettingsProvider](api/faststream/confluent/prometheus/provider/BaseConfluentMetricsSettingsProvider.md)
- [BatchConfluentMetricsSettingsProvider](api/faststream/confluent/prometheus/provider/BatchConfluentMetricsSettingsProvider.md)
- [ConfluentMetricsSettingsProvider](api/faststream/confluent/prometheus/provider/ConfluentMetricsSettingsProvider.md)
- [settings_provider_factory](api/faststream/confluent/prometheus/provider/settings_provider_factory.md)
- publisher
- asyncapi
- [AsyncAPIBatchPublisher](api/faststream/confluent/publisher/asyncapi/AsyncAPIBatchPublisher.md)
Expand Down Expand Up @@ -619,6 +629,15 @@ search:
- parser
- [AioKafkaBatchParser](api/faststream/kafka/parser/AioKafkaBatchParser.md)
- [AioKafkaParser](api/faststream/kafka/parser/AioKafkaParser.md)
- prometheus
- [KafkaPrometheusMiddleware](api/faststream/kafka/prometheus/KafkaPrometheusMiddleware.md)
- middleware
- [KafkaPrometheusMiddleware](api/faststream/kafka/prometheus/middleware/KafkaPrometheusMiddleware.md)
- provider
- [BaseKafkaMetricsSettingsProvider](api/faststream/kafka/prometheus/provider/BaseKafkaMetricsSettingsProvider.md)
- [BatchKafkaMetricsSettingsProvider](api/faststream/kafka/prometheus/provider/BatchKafkaMetricsSettingsProvider.md)
- [KafkaMetricsSettingsProvider](api/faststream/kafka/prometheus/provider/KafkaMetricsSettingsProvider.md)
- [settings_provider_factory](api/faststream/kafka/prometheus/provider/settings_provider_factory.md)
- publisher
- asyncapi
- [AsyncAPIBatchPublisher](api/faststream/kafka/publisher/asyncapi/AsyncAPIBatchPublisher.md)
Expand Down Expand Up @@ -732,6 +751,15 @@ search:
- [NatsBaseParser](api/faststream/nats/parser/NatsBaseParser.md)
- [NatsParser](api/faststream/nats/parser/NatsParser.md)
- [ObjParser](api/faststream/nats/parser/ObjParser.md)
- prometheus
- [NatsPrometheusMiddleware](api/faststream/nats/prometheus/NatsPrometheusMiddleware.md)
- middleware
- [NatsPrometheusMiddleware](api/faststream/nats/prometheus/middleware/NatsPrometheusMiddleware.md)
- provider
- [BaseNatsMetricsSettingsProvider](api/faststream/nats/prometheus/provider/BaseNatsMetricsSettingsProvider.md)
- [BatchNatsMetricsSettingsProvider](api/faststream/nats/prometheus/provider/BatchNatsMetricsSettingsProvider.md)
- [NatsMetricsSettingsProvider](api/faststream/nats/prometheus/provider/NatsMetricsSettingsProvider.md)
- [settings_provider_factory](api/faststream/nats/prometheus/provider/settings_provider_factory.md)
- publisher
- asyncapi
- [AsyncAPIPublisher](api/faststream/nats/publisher/asyncapi/AsyncAPIPublisher.md)
Expand Down Expand Up @@ -810,6 +838,23 @@ search:
- [TelemetryMiddleware](api/faststream/opentelemetry/middleware/TelemetryMiddleware.md)
- provider
- [TelemetrySettingsProvider](api/faststream/opentelemetry/provider/TelemetrySettingsProvider.md)
- prometheus
- [BasePrometheusMiddleware](api/faststream/prometheus/BasePrometheusMiddleware.md)
- [ConsumeAttrs](api/faststream/prometheus/ConsumeAttrs.md)
- [MetricsSettingsProvider](api/faststream/prometheus/MetricsSettingsProvider.md)
- container
- [MetricsContainer](api/faststream/prometheus/container/MetricsContainer.md)
- manager
- [MetricsManager](api/faststream/prometheus/manager/MetricsManager.md)
- middleware
- [BasePrometheusMiddleware](api/faststream/prometheus/middleware/BasePrometheusMiddleware.md)
- [PrometheusMiddleware](api/faststream/prometheus/middleware/PrometheusMiddleware.md)
- provider
- [MetricsSettingsProvider](api/faststream/prometheus/provider/MetricsSettingsProvider.md)
- types
- [ConsumeAttrs](api/faststream/prometheus/types/ConsumeAttrs.md)
- [ProcessingStatus](api/faststream/prometheus/types/ProcessingStatus.md)
- [PublishingStatus](api/faststream/prometheus/types/PublishingStatus.md)
- rabbit
- [ExchangeType](api/faststream/rabbit/ExchangeType.md)
- [RabbitBroker](api/faststream/rabbit/RabbitBroker.md)
Expand Down Expand Up @@ -848,6 +893,12 @@ search:
- [RabbitTelemetrySettingsProvider](api/faststream/rabbit/opentelemetry/provider/RabbitTelemetrySettingsProvider.md)
- parser
- [AioPikaParser](api/faststream/rabbit/parser/AioPikaParser.md)
- prometheus
- [RabbitPrometheusMiddleware](api/faststream/rabbit/prometheus/RabbitPrometheusMiddleware.md)
- middleware
- [RabbitPrometheusMiddleware](api/faststream/rabbit/prometheus/middleware/RabbitPrometheusMiddleware.md)
- provider
- [RabbitMetricsSettingsProvider](api/faststream/rabbit/prometheus/provider/RabbitMetricsSettingsProvider.md)
- publisher
- asyncapi
- [AsyncAPIPublisher](api/faststream/rabbit/publisher/asyncapi/AsyncAPIPublisher.md)
Expand Down Expand Up @@ -949,6 +1000,15 @@ search:
- [RedisPubSubParser](api/faststream/redis/parser/RedisPubSubParser.md)
- [RedisStreamParser](api/faststream/redis/parser/RedisStreamParser.md)
- [SimpleParser](api/faststream/redis/parser/SimpleParser.md)
- prometheus
- [RedisPrometheusMiddleware](api/faststream/redis/prometheus/RedisPrometheusMiddleware.md)
- middleware
- [RedisPrometheusMiddleware](api/faststream/redis/prometheus/middleware/RedisPrometheusMiddleware.md)
- provider
- [BaseRedisMetricsSettingsProvider](api/faststream/redis/prometheus/provider/BaseRedisMetricsSettingsProvider.md)
- [BatchRedisMetricsSettingsProvider](api/faststream/redis/prometheus/provider/BatchRedisMetricsSettingsProvider.md)
- [RedisMetricsSettingsProvider](api/faststream/redis/prometheus/provider/RedisMetricsSettingsProvider.md)
- [settings_provider_factory](api/faststream/redis/prometheus/provider/settings_provider_factory.md)
- publisher
- asyncapi
- [AsyncAPIChannelPublisher](api/faststream/redis/publisher/asyncapi/AsyncAPIChannelPublisher.md)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.KafkaPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.middleware.KafkaPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.provider.BaseConfluentMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.provider.BatchConfluentMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.provider.ConfluentMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.confluent.prometheus.provider.settings_provider_factory
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.KafkaPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.middleware.KafkaPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.provider.BaseKafkaMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.provider.BatchKafkaMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.provider.KafkaMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.kafka.prometheus.provider.settings_provider_factory
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.NatsPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.middleware.NatsPrometheusMiddleware
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.provider.BaseNatsMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.provider.BatchNatsMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.provider.NatsMetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.nats.prometheus.provider.settings_provider_factory
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/prometheus/BasePrometheusMiddleware.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.BasePrometheusMiddleware
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/prometheus/ConsumeAttrs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.ConsumeAttrs
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/prometheus/MetricsSettingsProvider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.MetricsSettingsProvider
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.container.MetricsContainer
11 changes: 11 additions & 0 deletions docs/docs/en/api/faststream/prometheus/manager/MetricsManager.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.manager.MetricsManager
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
# 0.5 - API
# 2 - Release
# 3 - Contributing
# 5 - Template Page
# 10 - Default
search:
boost: 0.5
---

::: faststream.prometheus.middleware.BasePrometheusMiddleware
Loading

0 comments on commit 975d182

Please sign in to comment.