MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / handle_promsql_query

Function handle_promsql_query

src/environmentd/src/http/sql.rs:224–250  ·  view source on GitHub ↗
(
    client: &mut AuthedClient,
    query: &PrometheusSqlQuery<'_>,
    metrics_registry: &MetricsRegistry,
    metrics_by_name: &mut BTreeMap<String, GenericGaugeVec<AtomicF64>>,
)

Source from the content-addressed store, hash-verified

222}
223
224async fn handle_promsql_query(
225 client: &mut AuthedClient,
226 query: &PrometheusSqlQuery<'_>,
227 metrics_registry: &MetricsRegistry,
228 metrics_by_name: &mut BTreeMap<String, GenericGaugeVec<AtomicF64>>,
229) {
230 if !query.per_replica {
231 execute_promsql_query(client, query, metrics_registry, metrics_by_name, None).await;
232 return;
233 }
234
235 let catalog = client.client.catalog_snapshot("handle_promsql_query").await;
236 let clusters: Vec<&Cluster> = catalog.clusters().collect();
237
238 for cluster in clusters {
239 for replica in cluster.replicas() {
240 execute_promsql_query(
241 client,
242 query,
243 metrics_registry,
244 metrics_by_name,
245 Some((cluster, replica)),
246 )
247 .await;
248 }
249 }
250}
251
252pub async fn handle_promsql(
253 mut client: AuthedClient,

Callers 1

handle_promsqlFunction · 0.85

Calls 5

execute_promsql_queryFunction · 0.85
catalog_snapshotMethod · 0.45
collectMethod · 0.45
clustersMethod · 0.45
replicasMethod · 0.45

Tested by

no test coverage detected