Skip to content

Commit

Permalink
Discover namespace from prometheus
Browse files Browse the repository at this point in the history
  • Loading branch information
lemaitre-aneo committed May 13, 2024
1 parent a4fe32e commit 3726553
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 19 deletions.
1 change: 0 additions & 1 deletion armonik/pdc.tf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ locals {
MetricsName = var.pod_deletion_cost.metrics_name
Period = var.pod_deletion_cost.period
IgnoreYoungerThan = var.pod_deletion_cost.ignore_younger_than
KubernetesNamespace = var.namespace
Concurrency = var.pod_deletion_cost.concurrency
}, var.pod_deletion_cost.extra_conf) : {}
}
Expand Down
13 changes: 3 additions & 10 deletions images/pdc-update/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,6 @@ struct Cli {
#[arg(short, long, env = "IgnoreYoungerThan", default_value_t = 10.0)]
ignore_younger_than: f64,

/// Namespace where the pods are located
#[arg(short, long, env = "KubernetesNamespace", default_value = "default")]
namespace: String,

/// Number of concurrent requests to Kubernetes
#[arg(short, long, env = "Concurrency", default_value_t = 10)]
concurrency: u32,
Expand All @@ -54,12 +50,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {

let cost_model: Box<dyn CostModel> =
Box::new(cost::age::AgeCost::new(cli.ignore_younger_than, 1.0));
let metrics_scraper: Box<dyn MetricsScraper> =
Box::new(metrics::prometheus::PrometheusScraper::new(
&cli.prometheus_url,
&cli.metrics_name,
&cli.namespace,
)?);
let metrics_scraper: Box<dyn MetricsScraper> = Box::new(
metrics::prometheus::PrometheusScraper::new(&cli.prometheus_url, &cli.metrics_name)?,
);
let worker_updater: Box<dyn WorkerUpdater + Sync> =
Box::new(updater::pod::PodUpdater::new(cli.concurrency as usize).await?);
let mut cost_map = HashMap::new();
Expand Down
11 changes: 3 additions & 8 deletions images/pdc-update/src/metrics/prometheus.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,17 @@ use super::{MetricsScraper, MetricsValue};
pub struct PrometheusScraper {
/// Query URL for Prometheus
query: reqwest::Url,
/// Namespace of the workers
namespace: String,
}

impl PrometheusScraper {
/// Create a new [`PrometheusScraper`]
pub fn new(
url: &str,
metrics_name: &str,
namespace: &str,
) -> Result<Self, Box<dyn std::error::Error + Send + Sync>> {
let mut query = reqwest::Url::parse(url)?.join("api/v1/query")?;
query.query_pairs_mut().append_pair("query", metrics_name);
Ok(Self {
query,
namespace: namespace.to_owned(),
})
Ok(Self { query })
}
}

Expand Down Expand Up @@ -63,7 +57,7 @@ impl MetricsScraper for PrometheusScraper {

Some(MetricsValue {
name: result.metric.kubernetes_pod_name.to_owned(),
namespace: self.namespace.clone(),
namespace: result.metric.kubernetes_namespace.to_owned(),
timestamp: result.value.0,
value,
})
Expand Down Expand Up @@ -106,6 +100,7 @@ struct PrometheusMetric<'a> {
name: &'a str,
instance: &'a str,
job: &'a str,
kubernetes_namespace: &'a str,
kubernetes_pod_name: &'a str,
kubernetes_pod_node_name: &'a str,
}
Expand Down
6 changes: 6 additions & 0 deletions monitoring/onpremise/prometheus/prometheus-configmap.tf
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,9 @@ scrape_configs:
- source_labels: [__meta_kubernetes_pod_label_service]
action: keep
regex: "control-plane"
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_node_name]
action: replace
target_label: kubernetes_pod_node_name
Expand All @@ -139,6 +142,9 @@ scrape_configs:
- source_labels: [__meta_kubernetes_pod_label_service]
action: keep
regex: "compute-plane"
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_node_name]
action: replace
target_label: kubernetes_pod_node_name
Expand Down

0 comments on commit 3726553

Please sign in to comment.