#alert #change #api-client #bigpanda #aiops

bigpanda-rs

一个用于与BigPanda API交互的Rust库

2个版本

0.1.1 2021年10月22日
0.1.0 2021年10月22日

#20 in #alert

自定义许可

14KB
162

bigpanda-rs

bigpanda-rs 是一个用于与BigPanda API集成的Rust库。

该库目前支持创建/更新警报和变更。

使用指南

请参阅此存储库中的测试用例以获取详细示例,但以下是一个快速指南。

首先,使用特定的Api类型、应用程序密钥和auth_token创建BigPanda客户端

use bigpanda_rs::Client;
use bigpanda_rs::alert::{Alert, AlertStatus};
use bigpanda_rs::change::Change;

let client = Client::new(
    ApiType::Alert,
    &app_key.to_string(),
    &auth_token.to_string()
);

其次,构建您的警报或变更有效负载(请参阅测试用例以获取更多详细信息)

警报有效负载

let alert = Alert {
    app_key: app_key.to_string(),
    status: AlertStatus::Ok,
    host: "host_name".to_string(),
    timestamp: Some(timestamp),
    description: Some("This is a description".to_string()),
    check: Some("This is a check".to_string()),
    cluster: Some("cluster_name".to_string()),
    primary_property: Some("host".to_string()),
    secondary_property: None,
    additional: None,
};

变更有效负载

let now = Utc::now();
let timestamp: i64 = now.timestamp();

let mut tags = HashMap::new();
tags.insert("change_type".to_string(), "software".to_string());
tags.insert("service".to_string(), "test_service".to_string());

let change = Change {
    identifier: "TEST-12345".to_string(),
    status: "Done".to_string(),
    summary: "This is a test change".to_string(),
    start: timestamp,
    end: timestamp,
    tags: Some(tags),
    ticket_url: None,
    metadata: None,
};

最后,发送相应的请求

发送警报

let response = client.send_alert(alert).await;

发送变更

let response = client.send_change(change).await;

依赖项

~7–19MB
~259K SLoC