观测云联动PostgreSQL实现告警

观测云联动PostgreSQL实现告警

1创建PostgreSQL实例

1.1在阿里云界面选择RDS创建实例

在这里插入图片描述
在这里插入图片描述

1.2设置白名单

数据库实例管理->白名单与安全组

在这里插入图片描述

1.3创建账号

点击数据库实例管理->账号管理->创建账号

在这里插入图片描述

1.4登陆数据库

点击数据库实例->登陆数据库,选择DMS方式管理数据库(还有pgAdmin或者控制台方式等可选),输入账号密码等信息,postgres数据库为自带数据库,不用动这个数据库

在这里插入图片描述

1.5建库

在SQLConsole中创建数据库,表,插入数据

CREATE DATABASE mydatabase;

在mydatabase数据库下选择public的schema,执行如下代码创建表employees并插入数据

CREATE TABLE employees (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL,
    department TEXT
);

INSERT INTO employees (name, age, department) VALUES ('Alice', 30, 'HR');
INSERT INTO employees (name, age, department) VALUES ('Bob', 25, 'Engineering');
INSERT INTO employees (name, age, department) VALUES ('Charlie', 35, 'Marketing');

在这里插入图片描述

2部署观测云func平台

下载安装dataflux func开发平台

$ /bin/bash -c "$(curl -fsSL func.guance.com/portable-download)" -- --for=GSE

访问机器公网IP+8088端口,用户名密码默认admin登陆

3通过Func连接PostgreSQL和观测云

3.1创建psgql连接器

当用户需要访问外部数据库,第三方系统时除了在代码中直接实现之外可以使用func平台自带的连接器功能

具体可以参考连接:https://func.guance.com/doc/ui-guide-development-module-connector/

根据要求创建PostgreSQL连接器,并保存在这里插入图片描述

将光标放在新建的连接器上会有连接器的具体用法
在这里插入图片描述

3.2创建datakit连接器

相同方式建立一个datakit的连接器,因为我们要通过datakit连接器来将pgsql中的数据打到观测云上
可以参考链接:https://func.guance.com/doc/practice-write-data-via-datakit/

在这里插入图片描述

3.3编写python脚本

编写python脚本,将PostgreSQL中的数据通过pgsql连接器取出并通过datakit连接器推送到观测云平台上

import time
@DFF.API('Query employees')
def query_employees():
    # 初始化 PostgreSQL 连接器
    postgresql = DFF.CONN('pgsql_guance')
    # 执行查询,获取employees表中的一条数据
    query = 'SELECT * FROM employees LIMIT 1'
    result = postgresql.query(query)
    # 如果查询结果为空,返回空列表
    if not result:
        return []
    #初始化 DataKit 连接器
    datakit = DFF.CONN('datakit')
    # 获取当前时间戳
    now = time.time()
    # 处理查询结果并写入 DataKit
    for row in result:
        # 将数据作为指标写入 DataKit
        _measurement = 'employees'                 # 指标集
        _tags        = { 'department': row['department'], 'name': row['name']} # 标签
        _fields      = { 'id': row['id'], 'name': row['name'], 'age': row['age'] }  # 字段
        datakit.write_metric(measurement=_measurement, tags=_tags, fields=_fields, timestamp=now)

        # 将数据作为日志写入 DataKit
        _measurement = 'employees'                               # 指标集(即日志中的来源)
        _tags        = { 'department': row['department'] }       # 标签
        _fields      = { 'message': f"Employee {row['name']} with ID {row['id']} and age {row['age']}" }  # 字段
        datakit.write_logging(measurement=_measurement, tags=_tags, fields=_fields, timestamp=now)

    return "OK"


def test_query_employees():
    result = query_employees()
    assert result == "OK", f"Expected 'OK' but got {result}"
    return 'OK'

  1. 使用 @DFF.API('Query employees and write to DataKit') 装饰器定义一个 API 方法。这个方法将从 PostgreSQL 数据库查询数据,并通过 DataKit 连接器写入观测云。
    • 初始化 PostgreSQL 连接器。
    • 执行查询,获取 employees 表中的一条数据。
    • 初始化 DataKit 连接器。
    • 获取当前时间戳。
    • 处理查询结果并将数据分别写入 DataKit 的指标和日志中。
  2. 定义 test_query_and_write 测试方法
    定义一个测试方法来测试 query_and_write 方法。
    • 调用 query_and_write 方法。
    • 断言返回结果为 “OK”。
    • 返回 ‘OK’ 表示测试通过。

点击保存发布选择query_employees方法执行

在这里插入图片描述

结果如下

在这里插入图片描述

3.4观测云平台验证数据

脚本中将pgsql取出的数据写成 指标和日志到观测云平台

指标

饿mployees指标集,由于指标不支持string类型所以name和department以标签的形式输出

在这里插入图片描述

日志

在这里插入图片描述

4告警监控配置

4.1新建阈值检测

在这里插入图片描述

自定义告警规则

在这里插入图片描述

4.2告警通知对象设置

这里设置通知到钉钉,点击监控->通知对象管理->新建通知对象->钉钉机器人

在钉钉群中添加机器人,保存webhook地址,并配置到观测云的钉钉机器人通知对象中

在这里插入图片描述

在监控器里的告警策略管理中选择新添加的机器人

在这里插入图片描述

在监控器的事件通知->告警配置中添加有新建机器人的告警策略default,并保存
在这里插入图片描述

4.3查看结果

触发监控即可在钉钉中收到告警信息

在这里插入图片描述

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值