Flowmill :为分布式应用程序世界构建的网络可观察性解决方案
https://docs.flowmill.com/
目录
How Flowmill Works
Flowmill 收集什么
检测网络可靠性和性能问题
管理网络传输成本
分析应用程序行为
Flowmill 是专为分布式应用程序世界构建的网络可观察性解决方案。通过自动跟踪主机、容器和进程之间的每个连接,Flowmill 帮助 SRE 团队发现每个服务依赖项,确定网络和基础设施问题何时以及如何影响服务,并收集每对服务之间的速率、错误和持续时间指标。
Flowmill 旨在在几分钟内部署到整个车队,而无需更改应用程序代码、运行时或容器映像。它不需要开发人员检测或手动每个服务配置。Flowmill 由每个主机(VM / 裸机)上的高性能代理组成,它将直接从操作系统收集的详细通信摘要发送到基于云的 Flowmill 服务。该代理利用 eBPF(Linux 内核公开的接口)来自动检测网络堆栈并收集每个套接字上的实时数据以及相关的进程和容器元数据。这种有针对性的方法允许 Flowmill 代理以可忽略的开销运行,通常为 0.25%/CPU 内核。
How Flowmill Works
Flowmill 由每个主机(云实例/VM/裸机)上的基于 eBPF 的“内核”收集器组成,它将直接从操作系统收集的详细通信摘要发送到基于云的 Flowmill 服务。该代理利用 eBPF(Linux 内核公开的接口)来自动检测网络堆栈并收集每个套接字上的实时数据以及相关的进程和容器元数据。这种有针对性的方法允许 Flowmill 代理以可忽略的开销运行,通常为 0.25%/CPU 内核。
此外,Flowmill 包括许多可选的元数据收集器。这些包括:
Kubernetes 收集器:从 Kubernetes API 收集服务、部署、pod 和节点更新
AWS 收集器:收集有关 VPC 中公开的网络接口的信息,以标记 ELB、NAT 网关、PrivateLink 等组件。
Flowmill 代理在将数据发送到 Flowmill 服务之前对其进行加密和压缩。这种“原始”数据必须在连接的两端进行匹配,用服务名称进行标记和丰富,并实时聚合和分析。这是该过程的关键部分,因为它将低级套接字指标转换为面向服务和面向主机的系统行为视图。
然后可以通过 API、用户界面或通过各种合作伙伴集成公开数据集。
Flowmill 收集什么
Flowmill 代理在每个套接字的基础上每秒收集指标。这些指标由基于 eBPF 的内核收集器自动收集,无需更改代码或容器映像。
公制
细节
TCP吞吐量
由 Linux 内核测量
TCP 数据包速率
由 Linux 内核测量
重传率/丢包率
由 Linux 内核测量
连接失败
基于 TCP 握手失败的“同步”超时
新套接字速率
每秒创建的新套接字数
平均往返时间
基于内核TCP传输估计器
UDP吞吐量
由 Linux 内核测量
UDP 数据包速率
由 Linux 内核测量
UDP 活动连接速率
由 Linux 内核测量
UDP 内核丢弃率
由 Linux 内核测量
HTTP 成功率 (200)
支持 HTTP 1.0/1.1,未加密流量
HTTP 客户端错误率 (400)
支持 HTTP 1.0/1.1,未加密流量
HTTP 服务器错误率 (500)
支持 HTTP 1.0/1.1,未加密流量
HTTP 其他速率(100's、300's、其他)
支持 HTTP 1.0/1.1,未加密流量
平均 HTTP 延迟
支持 HTTP 1.0/1.1,未加密流量
DNS 响应率
基于来自每个进程的 DNS 流量
DNS 错误率
基于来自每个进程的 DNS 流量
平均 DNS 延迟
基于来自每个进程的 DNS 流量
分组层次结构提供围绕此数据的标签。
物理分组物理分组
描述
区
物理位置
主持人
主机或节点的名称
地址
(即容器IP,如果不同于主机)
过程
来自 Linux 的进程名称
逻辑分组逻辑分组
描述
命名空间
服务的分组机制。可以从 Kubernetes 等编排中收集
服务
分布式服务/功能。如果可能,也经常从编排层收集
版本
容器/Docker 版本(或用户定义)
港口
L4端口(只标注普通端口)
类型
Flowmill 如何派生服务名称的描述。
检测网络可靠性和性能问题
分布式、基于服务的应用程序特别容易受到网络问题的影响。当出现可靠性和性能问题时,运营商经常会问自己“是网络吗”?Flowmill 将实时网络统计数据与有关容器和服务的元数据连接起来,以帮助将软件错误与基础设施问题分开。
由于 Flowmill 捕获并呈现有关源和目标的成对指标,因此可以自动监控到可能在公共 Internet 上运行的托管服务和第 3 方提供商的连接以及云提供商内的可靠性。
Flowmill 可以帮助识别影响服务的许多网络问题,包括:
数据包丢失: TCP 流中的重传
连接失败:TCP Syn 超时
DNS 超时:没有相应响应的 DNS 请求
网络性能:网络往返时间的详细指标可以与应用层延迟相关联,以确定“网络”是性能瓶颈的根本原因。
管理网络传输成本
https://docs.flowmill.com/use-cases/reducing-network-costs网络传输成本是许多云环境中的现实。至少对于 AWS 而言,出口流量的范围为 0.09 美元/GB,跨区域边界的流量为 0.02 美元/GB(尽管它可能要复杂得多)。
随着工作负载迁移到微服务,网络传输成本的影响和重要性发生了巨大变化。Kubernetes、ECS 或 Nomad 等平台使启动新服务变得异常容易,并且集群经常分布在可用区边界上。这使得网络传输成本:
由于服务到服务的通信和
越来越不透明,因为很难将网络消耗映射到可能跨数十或数百个实例运行的分布式服务。
Flowmill 提供了一个专门为网络成本设计的仪表板。此界面向您显示在您的环境中生成最多跨区域和出口流量的服务,并允许您深入查看与它们通信的目标服务。此处的服务将包括您运行和运营的内部服务以及由云提供商或第三方平台运行的托管服务。
分析应用程序行为
https://docs.flowmill.com/use-cases/analyzing-application-behaviorFlowmill 跟踪网络级别的每个连接,并用服务信息匹配和丰富这些数据。这允许它创建一个真正完整的服务行为视图,而无需任何用户干预或配置。
Flowmill 可以通过以下方式提供帮助:
发现服务依赖项,包括未知或未记录的行为
识别服务之间的流量高峰
捕获数据泄露或不需要的服务到服务连接
在部署新版本的服务时跟踪 SLO
Flowmill :为分布式应用程序世界构建的网络可观察性解决方案相关推荐
- ZooKeeper:分布式应用程序的分布式协调服务
ZooKeeper--动物园管理员 ZooKeeper:分布式应用程序的分布式协调服务 设计目标 数据模型和分层命名空间 节点和短暂节点 有条件的更新和手表 担保 简单的API 履行 用途 性能 可靠 ...
- pAdTy_2 构建连接网络和云的应用程序
2015.11.18 - 12.09 个人英文阅读练习笔记.原文地址:http://developer.android.com/training/building-connectivity.html. ...
- Foundatio - .Net Core用于构建分布式应用程序的可插拔基础块
简介 Foundatio - 用于构建分布式应用程序的可插拔基础块 •想要针对抽象接口进行构建,以便我们可以轻松更改实现.希望这些块对依赖注入友好.•缓存:我们最初使用的是开源 Redis 缓存客户端 ...
- ZooKeeper程序员指南--使用ZooKeeper开发分布式应用程序
ZooKeeper程序员指南 开发使用ZooKeeper的分布式应用程序 介绍 ZooKeeper数据模型 ZNodes 手表 数据访问 短暂的节点 序列节点 - 唯一命名 容器节点 TTL节点 在Z ...
- ZooKeeper分布式应用程序的分布式协调服务:概述,入门,发布版本
ZooKeeper概述适用于客户端开发人员,管理员和贡献者的技术概述文档 概述 -ZooKeeper的鸟瞰图,包括设计概念和体系结构 入门 -教程风格的指南,供开发人员安装,运行和编程到ZooKeep ...
- Zookeeper 教程:Zookeeper作为Hadoop和Hbase的重要组件,为分布式应用程序协调服务
目录 Zookeeper 教程 适用人群 学习前提 Zookeeper 概述 分布式应用 分布式应用的优点 分布式应用的挑战 什么是Apache ZooKeeper? ZooKeeper的好处 Zoo ...
- WPF:使用WPF应用程序中的默认网络凭据和凭据存储来管理自动登录
目录 介绍 背景 使用代码 下载源文件276.9 KB 介绍 在这里,在本文中,我创建了一个简单的WPF应用程序,该应用程序尝试使用默认网络凭据针对WebApi服务对用户进行身份验证.如果成功,将为将 ...
- 分布式应用程序是什么
分布式应用程序是指应用程序分布在不同计算机上,通过网络来共同完成一项任务.通常为服务器/客户端模式. 互联网用户无法完全控制他们在今天的网站上分享的数据.以太坊(Ethereum)的独特之处在于它试图 ...
- rda冗余分析步骤_分子生态网络分析(MENA)构建微生物网络示例
分子生态网络分析(MENA)构建微生物网络示例续前文"微生物共发生网络",本篇继续简介分子生态网络分析(Molecular Ecological Network Analysis, ...
最新文章
- 张首晟生前重磅演讲:要用第一性原理的思维方式来理解今天的世界
- TaxonKit工具:获取物种NCBI数据库的Taxonomy ID
- CentOS系统快捷方式设置
- 13-numpy笔记-莫烦pandas-1
- Starzhou:EOSIO1.0 版本环境搭建
- fastjson safemode_它又又又来了,Fastjson 最新高危漏洞来袭!
- 基于动态背包的多场景广告序列投放算法
- 小而全的Pandas使用案例
- python控件随窗口变化而适配_Tkinter窗口/控件比例调整
- 排序陷阱 List.Sort Linq.OrderBy
- POJ 3360 H-Cow Contest
- Instant Run 的操作影响到了代码,导致Android App启动闪退的问题
- 浅析tomcat原理
- 阿里云移动推送的接入和踩坑
- 如何在Windows11安装安卓子系统?
- java label 位置_java 怎样设置label的位置
- cad标注样式快捷键_制图大神最常用的六大类CAD快捷命令,学会CAD就是这么简单...
- 有哪些不错的电子书管理软件?免费项目管理软件推荐
- python爬取微博热搜显示到折线图_微博热搜榜前20信息数据爬取进行数据分析与可视化...
- 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�:
热门文章
- dbforge studio for oracle,dbForge Studio for Oracle(数据库管理软件)官方版
- get post put delete
- 希尔和归并排序的异同
- 爬虫app信息抓取之apk反编译抓取
- java学习--基础知识进阶第五天--API、 Object类 System类、日期相关类、包装类正则表达式...
- 给DIV设置高度百分百
- 一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS
- webstorm 破解方式
- [BZOJ1998][Hnoi2010]Fsk物品调度
- python中property干什么用的?