add prometheus metrics
ci/woodpecker/push/tests Pipeline was successful

This commit is contained in:
2026-07-26 11:02:34 +00:00
parent 7252bf7673
commit 6ffd88927c
10 changed files with 332 additions and 16 deletions
+10 -3
View File
@@ -1,6 +1,5 @@
use crate::{
gitea::{GiteaAPI, WebhookType},
open_router::OpenRouterClient,
gitea::{GiteaAPI, WebhookType}, metrics, open_router::OpenRouterClient,
};
use serde::Deserialize;
use std::{collections::HashSet, sync::Arc};
@@ -87,10 +86,12 @@ impl Bot {
info!(queued = rx.len(), active = tasks.len(), "Webhook received");
let permit = sem.clone().acquire_owned().await?;
let self_clone = self.clone();
metrics::increment_task_active();
tasks.spawn(async move {
self_clone.exec(wb).await;
drop(permit);
metrics::decrement_task_active();
});
}
@@ -102,6 +103,8 @@ impl Bot {
#[instrument(skip(self, webhook), fields(repo, pr))]
pub async fn exec(&self, webhook: WebhookType) {
let event_type_str = webhook.event_type_str();
match &webhook {
WebhookType::Review(p) => {
tracing::Span::current().record("repo", &p.repository.full_name);
@@ -121,8 +124,12 @@ impl Bot {
.await;
match exec_result {
Ok(_) => info!("Task completed"),
Ok(_) => {
metrics::task_completed(event_type_str);
info!("Task completed");
}
Err(err) => {
metrics::task_failed(event_type_str);
error!(%err, "Task error");
sentry_anyhow::capture_anyhow(&err);
}