作为一名开发者,我是如何看待微信小应用的

微信小应用终于开放内测了,一时间网络上炸开了锅,对此评论褒贬不一。 有的把它说的无比万能,是各种 App 的终结者, 也有把它看衰的非常彻底,觉得就是张小龙实验的玩具。 那么作为一名立志站在技术前沿的开发者,我们不能被网络上的各种嘴炮所忽悠,对微信小应用应保有自己的判断和认识。 以下是我想与大家分享的一些看法: 好的方面: 上手容易,微信小应用使用了目前非常火的 js native 的方案,意味着无论你是从 react+native 还是 weex 过来,都不会太大的技术负担。其实微信小应用就是在这些社区方案中,摸索并标准化了一套自己的方案而已,开发技术和常见的 Web 并没太多差异。 文档清晰,我想说这次小应用的文档绝非外包,我花费了并不多的时间,就把所有想要了解的东西都了解了完全,而且基本都找到了示例代码,这个和微信公众号文档比起来,简直爽的不要不要的。 API 丰富,有人说,微信小应用,只能做做简单的表单应用,这一点,我不认同。对于常规的应用,可能一般的 UI 组件就能满足,比如图片,列表,表单等;但对于一些复杂功能,微信小应用的 API 同样可以满足。你不仅可以使用 websocket (同时只能存在一个 websocket)实现实时消息,使用 cavans 绘图,还能使用地图,重力感应接口来做更多有趣的事情。...…

use Textfile Collector to make your node exporter more Powerful

有时 node_exporter 不能完全满足机器信息的收集,相较于 fork 代码,使用官方推荐的 Textfile Collector 是一种更简便的方式。 Textfile Collector 使用逻辑大致如下: 使用 -collector.textfile.directory 参数启动 node_exporter。 将我们自己收集的数据,按照 prometheus 的 文本格式 存储到 textfile collector 目录下的 *.prom 文件中。 每当 Prometheus server 到 node_exporter...…

A bug about prometheus rule incorrect configuration

随着对 Prometheus Alertmanager 深入了解,我们配置的告警通知已非常具有可读性。 但是有一个问题不断困扰着我们,问题现象大致为,在逻辑上我们认为是同一条的告警内容,在告警通知里面出现多次,而且已经过时告警还在不断警告(一直报)。 我们可以将这个问题简单总结为两点: 1. Prometheus rule 一条查询结果,在 Alertmanager 却对应了多条。 2. Alertmanager 里面有警报一直处于未恢复的状态(没有收到 Prometheus 发送的 resolved 请求)。 一开始怀疑,是不是 Prometheus 向 Alertmanager 发送的 resolved 通知有丢失, 导致部分历史警告一直处于未恢复状态。 但是排查,发现 Prometheus 和...…

Why my delta is a negative number

首先,让我们从一个 bug 说起,上周五, 有用户反馈,说我们的 API 每日请求统计为负数。 先简单解释下我们的每日统计是怎么实现的: 我们有个日志分析程序持续分析最新的日志(5分钟粒度),它会将分析结果推送到 pushgateway, 然后 prometheus 定时从 pushgateway 拉取数据。 我们定义了一个 metric 来表示收集到的数据,它是一个 counter 类型(不断递增)。 我们使用 PromQL 的 delta 语法, 选择从 00:00 ~ 23:59 的区间作为每日访问量。 这个计算逻辑初看上去很合理,但是它存在一个前提,那就是确保...…

Prometheus Alertmanager with slack receiver

在过去一篇文章 Prometheus With Alertmanager 中, 已介绍了 prometheus 的告警模块,Alertmanager 用法;今天我们将一起学习,使用 slack 接收告警通知,让咱们的运维看上去高大上,我们想做: 使用 slack 接受消息。 消息能够带有 url, 自动跳转到 prometheus 对应 graph 查询页面。 能自定义颜色。 能够 @ 某人 假设你已注册了 slack 账号,并创建了一个 #test 频道。...…

Prometheus with mysqld_exporter

一. 创建一个 MySQL 用户,并拥有适当的权限 CREATE USER 'mysqld_exporter'@'localhost' IDENTIFIED BY 'password'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'localhost' WITH MAX_USER_CONNECTIONS 3; 二. 下载和启动 mysqld_exporter wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.9.0/mysqld_exporter-0.9.0.linux-amd64.tar.gz tar -xzf mysqld_exporter-0.9.0.linux-amd64.tar.gz...…