← Back to reference

Rust Sdk Reference

Install

# Cargo.toml
[dependencies]
denpex-sdk = "0.7"

Modules

  • denpex_sdk::control_plane — REST client + OTLP submission.
  • denpex_sdk::agent_ingest — typed envelope shape for ingest.
  • denpex_sdk::enterprise_agent — typed envelope shape exported by denpex-enterprise-agent.

CLI

cargo install denpex-cli
denpex incident list --tenant <id>
denpex incident show <id>
denpex incident approve <id>
denpex checkpoint validate --path <path>
denpex rank map

Usage

use denpex_sdk::control_plane::{Client, IncidentQueryBuilder};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let client = Client::new("https://api.denpex.ai", "<token>", "<tenant>")?;
    let q = IncidentQueryBuilder::new()
        .state("open")
        .limit(25);
    let resp = client.list_incidents(q).send().await?;
    for inc in resp.nodes {
        println!("{}: {} on {}", inc.severity, inc.host, inc.id);
    }
    Ok(())
}

OTLP

use denpex_sdk::agent_ingest::{OtlpEnvelope, ResourceMetrics};
let env = OtlpEnvelope::new()
    .add_resource_metrics(ResourceMetrics::new(gpu_uuid));
client.submit_otlp(env).await?;

Compatibility

  • Rust 1.78+.
  • Async runtime: tokio 1.x.

Tests

denpex-sdk/tests/:

  • 3 unit tests per module.
  • 1 integration test against a mock server (via wiremock).