服务响应延迟、请求总量、错误数量、系统资源使用率是 Google SRE 提出的“四大黄金监控”指标,之后被很多团队实践。本文介绍了为什么这四个指标是了解系统当前状态最合适的四个指标。也提出了一些其他在提高系统可用性方面的实践。
Observability at Scale: Building Uber’s Alerting Ecosystem
Uber 的官方博客,介绍了它们的监控报警系统。Uber 有两个监控系统,一个是 uMonitor,从时序数据库中检测异常,发出报警(业务层面);一个是 Neris,监控基础设施,比如 CPU/Mem 等。文中分别介绍了这两个监控系统,以及如何报警、如果管理报警。
Why Use K-Means for Time Series Data? (Part One)
K-means 算法处理时序数据教程:
- Part1:如何使用统计学函数和 K-means 聚类从时序数据中检测异常
- Part2:代码实践,如何将 K-means 算法应用到时序数据,以及一些缺点
- Part3:如何使用 K-means 和 InfluxDB 在 EKG 数据中检测异常
Get Application Performance Metrics on Python Flask With Elastic APM on Kibana and Elasticsearch
很多 APM 客户端是开源的,Server 不开源。ELK 架构就很良心了。这是使用 Elastic APM 和 ES 的一个手把手教程。
Garbagedog: How eero does continuous monitoring of Java garbage collection
Eero 开发的一个监控 JVM GC 的组件(Python 编写)。Github
Open-Sourcing Our Incident Response Training
PagerDuty 开源了它们的应急反应培训资料。
Kubernetes Security — Are your Container Doors Open?
本文介绍了一些常见的 Kubernetes 误留下的漏洞,以及检查漏洞的方法。
Amazon Lambda 问世 4 年了,本周又宣布了重量级功能:Layer。Layer 可以允许不同语言编写的 Function 互相调用。之前,如果有不同的 Funtion 引用了相同的代码,那么就要将代码同引用代码一同打包发布。现在,你可以将被引用部分的代码单独发布,然后在 Function 中引用。Function 可以带有单独的版本控制,这样升级也不会影响所有的代码。
另外公布了 Runtime API,你可以提供一个可执行文件(比如 Python 解释器),然后 Lambda 会处理 Function 的调用和你的解释器执行代码这一层,你可以使用自己定制的 Runtime,也可以使用 AWS 官方制作的 Runtime。Runtime API 将是 AWS Lambda 将来支持新语言的方式。
这里有一个 awesome-layers 整理了一些 Runtime、可以调用的 Layer Function、以及一些监控的 Layer.
可以列举出你当前使用的所有云服务,原理就是你给它秘钥,它对接了每一个云平台服务商,会给你查询当前运行的各类云服务。举个例子就很明白了:
1 2 3 4 5 6 7 8 9 |
curl -k -v -u admin:pass --raw --data \ '{"credentials": [{"id":"<AWS_ACCESS_KEY>","secret":"<AWS_ACCESS_PASSWORD>"}]}' \ https://localhost:9083/discover Type Region ID EKS us-east-1 k8s-cluster-1 ECS us-east-1 cluster-1 ECS us-east-1 cluster-2 ECS us-east-1 cluster-3 ECR us-east-2 cluster-1 |
此工具以 Docker 形式提供,使用方便。主要可以用来审计,如果用了“弹性”的服务,这个工具就很实用了。我觉得可以和监控平台配合起来,每分钟扫描,记录下实时的资源使用。
另外它只使用读的 API,所以可以放心使用(不放心的话还是去看一下源代码)。
它的另一个功能是可以扫描 IP 端和端口,这样可以管理自建的云服务。
可以分析对比每一层 Docker image 都有哪些 diff,再也不用猜着做出更小的镜像了!
The Human Side of Microservices
InfoQ 对一位软件工程师的采访,涉及微服务、软件架构、devops 等话题。