diff --git a/fiberplane-pdk-macros/src/lib.rs b/fiberplane-pdk-macros/src/lib.rs index 1aa656e..79e3829 100644 --- a/fiberplane-pdk-macros/src/lib.rs +++ b/fiberplane-pdk-macros/src/lib.rs @@ -123,8 +123,8 @@ pub fn derive_config_schema(input: TokenStream) -> TokenStream { /// Used to automatically generate conversion methods to convert your data to /// and from the `Blob` type. /// -/// The macro extends the struct to which it is applied with `parse()` and -/// `serialize()` methods. +/// The macro extends the struct to which it is applied with `parse_blob()` and +/// `to_blob()` methods. /// /// # Example /// diff --git a/providers/prometheus/src/autometrics.rs b/providers/prometheus/src/autometrics.rs index ce5a6eb..0aece79 100644 --- a/providers/prometheus/src/autometrics.rs +++ b/providers/prometheus/src/autometrics.rs @@ -4,7 +4,7 @@ use grafana_common::{query_direct_and_proxied, Config}; use serde::{Deserialize, Serialize}; use std::collections::BTreeSet; -pub const ALL_FUNCTIONS_QUERY: &str = "x-autometrics-functions"; +pub const ALL_FUNCTIONS_QUERY_TYPE: &str = "x-autometrics-functions"; pub const CHILD_FUNCTIONS_QUERY: &str = "x-autometrics-child-functions"; pub const AUTOMETRICS_FUNCTIONS_MIME_TYPE: &str = "application/vnd.autometrics.functions"; diff --git a/providers/prometheus/src/config.rs b/providers/prometheus/src/config.rs index 56d1c9e..9663e9f 100644 --- a/providers/prometheus/src/config.rs +++ b/providers/prometheus/src/config.rs @@ -5,7 +5,7 @@ use fp_bindgen::prelude::Serializable; use grafana_common::{query_direct_and_proxied, Config}; use serde::{Deserialize, Serialize}; -pub const CONFIG_QUERY: &str = "x-prometheus-config"; +pub const CONFIG_QUERY_TYPE: &str = "x-prometheus-config"; pub const YAML_MIME_TYPE: &str = "text/yaml"; @@ -31,14 +31,12 @@ pub(crate) async fn query_config(_query: ConfigQuery, config: Config) -> Result< } pub fn create_code_cell(response: Blob) -> Result> { + let config_yaml = Yaml::parse_blob(response)?; + let code_cell = Cell::Code( CodeCell::builder() .id("config".to_owned()) - .content(String::from_utf8(response.data.into()).map_err(|err| { - Error::Deserialization { - message: err.to_string(), - } - })?) + .content(config_yaml.0) .syntax("yaml") .build(), ); diff --git a/providers/prometheus/src/lib.rs b/providers/prometheus/src/lib.rs index 42e91ff..110e168 100644 --- a/providers/prometheus/src/lib.rs +++ b/providers/prometheus/src/lib.rs @@ -21,11 +21,11 @@ const COMMIT_HASH: &str = env!("VERGEN_GIT_SHA"); const BUILD_TIMESTAMP: &str = env!("VERGEN_BUILD_TIMESTAMP"); pdk_query_types! { - ALL_FUNCTIONS_QUERY => { + ALL_FUNCTIONS_QUERY_TYPE => { handler: query_all_functions(FunctionsQuery, Config).await, supported_mime_types: [AUTOMETRICS_FUNCTIONS_MIME_TYPE] }, - CONFIG_QUERY => { + CONFIG_QUERY_TYPE => { handler: query_config(ConfigQuery, Config).await, label: "Prometheus config", supported_mime_types: [YAML_MIME_TYPE] @@ -55,7 +55,7 @@ fn create_cells(query_type: String, response: Blob) -> Result> { match query_type.as_str() { TIMESERIES_QUERY_TYPE => create_graph_cell(), - YAML_MIME_TYPE => create_code_cell(response), + CONFIG_QUERY_TYPE => create_code_cell(response), _ => Err(Error::UnsupportedRequest), } }