5.InfluxDB定时任务与报警

news2024/11/16 12:03:03

定时任务

InfluxDB的定时任务本质上是定时执行一个Flux脚本,一般回先查询数据再聚合修改最后可以写回另外一个bucket中

常用的定时任务使用场景

  • 降采样 : 如果数据的输入频率特别快比如IOT温度计设备每秒往InfluxDB写入一条数据会有大量的数据写入一个InfluxDB的bucket (因为该Bucket的数据会有大量堆积占用磁盘空间此时可以过期天数设置小一些比如2d),类似温度数据前后几秒不敏感的数据,可以启动一个定时任务每min获取最后一个数据点写入另外一个bucket,该bucket因为数据经历了降采样,量会小很多此时可以把过期时间设置的更长.
  • 预聚合 : 在需要开窗聚合的时候每次都会从一个Bucket中的一个时间段进行计算,会消耗更多的资源,可以通过定时任务对需要的时间窗口进行计算好了之后放入另外一个Bucket做到预处理的工作,下次查询直接查询处理好的bucket

通过WEB UI 创建定时任务

假定需求

  • 30s执行一次
  • 查询最近30s的数据 聚合取mean
  • 将数据转成Json
  • 发送给一个HTTP服务器
  1. 新建一个bucket

    image-20221215110008613

  2. 通过influx Line Protocol插入一些测试数据

    image-20221215110112101

    image-20221215110342893

    temperature,city=cq value=35 1671073531000
    temperature,city=cq value=36 1671073543000
    temperature,city=cq value=42 1671073545000
    temperature,city=cq value=33 1671073550000
    temperature,city=cq value=41 1671073553000
    temperature,city=cq value=50 1671073563000
    
  3. 从Data Explorer中自动构建好FLUX查询脚本 开窗时间建议改小一点统计出来的数据点会多一点
    image-20221215111232534

  4. 点击SCRIPT EDITOR 获取WEB UI 生成好的Flux脚本 ,稍微修改

image-20221215111353160

简单的SpringBoot写的echo接口

@RestController
public class EchoController {

    @PostMapping("/echo")
    public void echo(@RequestBody String echo) {
        System.out.println(echo);
    }
}
import "http"
import "json"

from(bucket: "example_task")
  // 修改前12小时
  |> range(start: -12h)
  |> filter(fn: (r) => r["_measurement"] == "temperature")
  |> filter(fn: (r) => r["_field"] == "value")
  |> filter(fn: (r) => r["city"] == "cq")
  // 转化为json 发送Post请求
  |> map(fn: (r) => {
    data = json.encode(v:r)
    code = http.post(url: "http://172.29.128.1:8080/echo", data: data)
    return r
  })
  // 开窗聚合
  |> aggregateWindow(every: 5s, fn: mean, createEmpty: false)
  |> yield(name: "mean")

image-20221215141502834

  1. 点击右上角SAVE AS 保存为一个新的存储桶

    1. task任务的调度有两种模式EVERY 表示每X时间执行一次 Offset表示延迟多久统计 因为网络存在延迟比如窗口30s 应该统计0-30秒的数据但是因为网络延迟 00:28的数据在32秒的时候才达到 此时使用offset会使得influx延迟5秒在35秒的时候回统计00 - 30的数据
    2. CRON表达式模式
    3. Output Bucket 指定结果输出到的bucket

image-20221215141540406

除了通过WEB-UI能够创建TASK也可以通过Influx-CLI创建TASK本质也是通过FLUX脚本

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/354150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes教程 --Pod详解

Pod详解 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类: 用户程序所在的容器,数量可多可少 Pause容器,这是每个Pod都会有的一个根容器,它的作用有两个: 可以以它为依据,评估整个…

ADS仿真,3db均衡器是否可以补偿3db插入损耗?

背景高速信号走线经常会有走线超长的问题,走线过长带来的直接影响是对应的插入损耗IL会增加,当超过标准要求时需增加Redriver等补偿,最常用的调整时增加预加重和去加重。而调整预加重时首先遇到的一个问题是补偿多少db?是否3db的均衡就可以补…

剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

摘要 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一、双指针解析 考虑定义双指针 i , j分列数组左右两端,循环执行: 指针 i从左向右寻找偶数;指针 j从右向左寻找奇数;将偶数nums[i]和奇数 nums[j]交换。 可始终保证&…

C#:Krypton控件使用方法详解(第六讲) ——kryptonTextBox

今天介绍的Krypton控件中的kryptonTextBox,下面开始介绍这个控件的属性:首先介绍的是外观属性:Cursor属性:表示鼠标移动过该控件的时候,鼠标显示的形状。属性值如下图所示:Lines属性:表示在显示…

HTML转EXE工具(HTML App Build)最新版

HTML转EXE工具(HTM2EXE)最初发布于2022-08-17。可以将Web前端转换成Windows32或者64的EXE执行程序。当时由于时间紧,未能进行优化,特别是浏览器采用的是IE内核,所以使用起来会有一些兼容性问题,当时就记录了…

万字长文讲述由ChatGPT反思大语言模型的技术精要

文|张俊林 源|知乎张俊林 导读:ChatGPT出现后惊喜或惊醒了很多人。惊喜是因为没想到大型语言模型(LLM,Large Language Model)效果能好成这样;惊醒是顿悟到我们对LLM的认知及发展理念&#xff0c…

机器学习笔记

一 1.类型 有监督:分类、回归 无监督:聚类、降维 2.挑战: 过拟合:泛化能力弱 欠拟合:模型过于简单 二、 1.开发流程 数据收集->数据清洗->特征工程->数据建模 2.选择性能指标: 回归问题 均方根…

node-sass@4.14.1 包含风险, 如何升级依赖至 dart-sass

文章目录需求我上网都查到了哪些信息在 github 看到了 node-sass 依赖的最新版本的列表:关于方案2的失败不同版本的 nodejs 和 node-sass依赖的**适配关系**从何得知替代方案——dart-sass如何安装 dart sass?需求 在做一个基于Node、React的前端项目&a…

这才是打开Java面试的正确方式,金三银四互联网大厂Java面试八股来袭

前言 招聘旺季已经到了,不知道大家是否准备好了,面对金三银四的招聘旺季,如果没有精心准备那笔者认为那是对自己不负责任;就我们 Java 程序员来说,多数的公司总体上面试都是以自我介绍项目介绍项目细节/难点提问基础知…

【LeetCode】剑指 Offer(3)

目录 写在前面: 题目:剑指 Offer 09. 用两个栈实现队列 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 写在前面&…

追光进行时:沿着全光运力的新航道,加速驶向算力时代

2021年,工信部印发《新型数据中心发展三年行动计划(2021—2023年)》,明确指出“用3年时间,形成总体布局持续优化,全国一体化算力网络国家枢纽节点、省内数据中心、边缘数据中心梯次布局”,“算力…

LeetCode230218_148、654. 最大二叉树

给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树…

页面置换算法

页面置换算法 在进程运行过程中,若需要访问的物理块不在内存中,就需要通过一定的方式来将页面载入内存,而此时内存很可能已无空闲空间,因此就需要一定的算法来选择内存中要被置换的页面,这种算法就被称为页面置换算法…

redis容器部署及相关配置文件解释

背景:我们项目上的redis除了几个核心业务的集群部署是用二进制部署的,其他环境基本都是容器部署。所以整理了一下redis容器相关的配置。docker-compose部署的配置version: 3services:redis:image: redis:6.2.5container_name: redisrestart: alwaysports…

springmvc+jsp电影院购票售票选座推荐网站java ssm

本电影购票推荐网站以SSM作为框架,B/S模式以及MySql作为后台运行的数据库。本系统主要包括以下功能模块:个人中心、用户管理、电影信息管理、电影类型管理、影院信息管理、系统管理、订单管理等模块,通过这些模块的实现能够基本满足日常电影购…

mysql 时区设置

方法一:修改 mysql 的配置文件永久设置时区(优点:永久保存设置,缺点:需重启MySQL服务)找到你MySQL的安装目录(如果不记得安装在哪 可以输入show variables like “%char%”; 查看)&a…

第四章SpringBoot之Web开发

文章目录SpringBoot Web开发总览要解决的问题SpringMVC自动配置原理Web开发静态资源处理第一种静态资源处理webjar第二种静态资源映射规则自定义静态资源路径首页处理内容协商视图解析器测试转换器和格式化器修改SpringBoot的默认配置原理分析全面接管SpringMVC关于国际化处理配…

Seata架构篇 - AT模式

AT 模式 概述 Seata AT 模式是一种非侵入式的分布式事务解决方案,Seata 在内部做了对数据库操作的代理层,我们使用 Seata AT 模式时,实际上用的是 Seata 自带的数据源代理 DataSourceProxy,Seata 在这层代理中加入了很多逻辑&am…

Koin入门1-快速上手

概念 Koin 是一款轻量级的依赖注入框架,它无代理,无代码生成,无反射 大家可以自行查阅官方英文教程:https://insert-koin.io/docs/quickstart/android-compose Koin 简单的来说可以包含以下四个模块: 名称作用entity实…

2|数据挖掘|聚类分析|无监督聚类PAM算法(中心法划分)|肠型分析

常见的六大聚类算法https://blog.csdn.net/m0_57656758/article/details/127653402?ops_request_misc%257B%2522request%255Fid%2522%253A%2522167669020916782425666238%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id167669020…