我正在使用telegraf bot 框架编写一个非常简单的 telegram-bot 。\n到目前为止,它使用.hears和回复了一些简单的命令.on,到目前为止一切正常。
现在我实现了另一种.hears等待字符串的方法Miez。一旦它“听到”这个字符串,它就应该.replyWithDocument包含一个cat-api url。根据 cat-api 的 URL 在每次调用时都会提供一个随机的 cat-gif。到目前为止我的代码:
const Telegraf = require(\'telegraf\')\n\nconst app = new Telegraf(\'<MY_TOKEN>\')\n\n// Connect/Express.js integration\nconst express = require(\'express\')\nconst expressApp = express()\n\nexpressApp.set(\'port\', (process.env.PORT || 5000));\n\n\napp.command(\'start\', (ctx) => {\n  console.log(\'start\', ctx.from)\n  ctx.reply(\'Welcome!\')\n})\n\napp.hears(\'Hi\', (ctx) => ctx.reply(\'Hallo!\'))\napp.hears(\'Marco\', (ctx) => ctx.reply(\'Polo\'))\napp.on(\'sticker\', (ctx) => ctx.reply(\'\xe2\x9d\xa4\'))\n\napp.hears(\'Miez\',(ctx) => {\n    try{\n          return ctx.replyWithDocument({\n            url: \'http://thecatapi.com/api/images/get?format=src&type=gif\',\n            filename: \'cat.gif\'\n          })\n\n       }catch(error){\n            return ctx.reply("Miau");\n       }\n})\nRun Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,我将其包装.replyWithDocument在 try/catch 块中。我这样做是因为给定的 …
我有一个Grafana + InfluxDB + Telegraf设置来监控我组织的服务器。我想制作一个仪表板,在其中监视多个服务器的计算机资源,例如 CPU、RAM 等。我想在 Grafana 仪表板中,如果我的服务器处理器高于 80%,则仅显示“0”;如果服务器处理器低于 80%,则显示“1”。为此,我如何使用CASE WHEN语句根据我设置的阈值显示 0/1。
我会很感激一些关于如何构建堆栈telegraf + InfluxDB + Grafana以监控一组机器的建议。
我已经telegraf + InfluxDB + Grafana在一台我称之为“监控实例”的机器上成功安装了堆栈。
我的系统是一个 API,由一台运行 nodejs 的机器和一个 postgres 实例组成。
我可以从我的 Postgresql 数据库(使用 postgres 的 Telegraf 输入插件)和我的应用程序(我以 prometheus 格式公开一些指标,telegraf 使用 prometheus 输入插件提取)中收集指标。
提前致谢。
我使用创建一个电报机器人telegraf使用向导。我想在我的机器人中有几个向导。如何进入另一个场景?我正在使用以下代码,但出现错误Cannot read property 'enter' of undefined。
const Stage = require("telegraf/stage");
const WizardScene = require("telegraf/scenes/wizard");
const wiz1 = new WizardScene('task1',
    ctx => {...},
    ctx => {...}
);
const wiz2 = new WizardScene('task2',
    ctx => {...},
    ctx => {...}
);
const wiz3 = new WizardScene('task3',
    ctx => {...},
    ctx => {...}
);
const stage =new Stage([wiz1,wiz2,wiz3],{default: 'task1'})
bot.hears('anAction', (ctx) => {Stage.enter('wiz2')}); // this does not work
Run Code Online (Sandbox Code Playgroud) 在我的系统(带有树莓派)中,我有一些传感器将数据发布到 Mosquitto,我使用 Telegraf 将数据传输到 influxDB 数据库,我使用 Grafana 来显示数据。
在没有 TLS 连接的测试期间(在 mosquittos 中)一切正常,但当我激活 TLS 时,我开始遇到 Telegraf 问题。
传感器使用 client.key、client.crt 和 ca.crt 将数据发送到代理。在代理中我可以看到来自传感器的数据。所以我认为问题不在于此。
在 telegraf 中(我想它作为客户端工作)我尝试配置 TLS 连接。查看 telegraf.service status ,它处于活动状态并且正在运行。查看日志,我没有看到连接中的错误,但我看不到来自代理的任何数据。
在 Telegraf.conf 中,我设置了证书,如下所示。我使用了用于连接到系统的传感器或其他客户端的文件,而不是使用 pem 文件:扩展名不同,我不知道问题是否在这里。
这里是Telegraf的配置(mqtt_consumer)
# # Read metrics from MQTT topic(s)
 [[inputs.mqtt_consumer]]
#   ## Broker URLs for the MQTT server or cluster.  To connect to multiple
#   ## clusters or standalone servers, use a seperate plugin instance.
#   ##   example: servers = ["tcp://localhost:1883"]
#   ##            servers = ["ssl://localhost:1883"] …Run Code Online (Sandbox Code Playgroud) telegraf ×5
grafana ×2
influxdb ×2
heroku ×1
influxql ×1
javascript ×1
monitoring ×1
mosquitto ×1
node.js ×1
raspberry-pi ×1
telegram ×1
telegram-bot ×1