kubernetes--Istio(四)

一、可观测性

Istio 为网格内所有的服务通信生成详细的遥测数据。这种遥测技术提供了服务行为的可观测性, 使运维人员能够排查故障、维护和优化应用程序,而不会给服务的开发人员带来任何额外的负担。 通过 Istio,运维人员可以全面了解到受监控的服务如何与其他服务以及 Istio 组件进行交互。

Istio 生成以下类型的遥测数据,以提供对整个服务网格的可观测性:

指标:Istio 基于 4 个监控的黄金标识(延迟、流量、错误、饱和)生成了一系列服务指标。 Istio 还为网格控制平面提供了更详细的指标。 除此以外还提供了一组默认的基于这些指标的网格监控仪表板。

分布式追踪:Istio 为每个服务生成分布式追踪 span, 运维人员可以理解网格内服务的依赖和调用流程。

访问日志:当流量流入网格中的服务时, Istio 可以生成每个请求的完整记录,包括源和目标的元数据。 此信息使运维人员能够将服务行为的审查控制到单个工作负载实例的级别。

1.1 指标

指标提供了一种以聚合的方式监控和理解行为的方法。

为了监控服务行为,Istio 为服务网格中所有出入网格, 以及网格内部的服务流量都生成了指标。这些指标提供了关于行为的信息, 例如总流量数、错误率和请求响应时间。

除了监控网格中服务的行为外,监控网格本身的行为也很重要。 Istio 组件可以导出自身内部行为的指标, 以提供对网格控制平面的功能和健康情况的洞察能力。

1.1.2 代理级别指标

Istio 指标收集从 Sidecar 代理(Envoy)开始。 每个代理为通过它的所有流量(入站和出站)生成一组丰富的指标。 代理还提供关于它本身管理功能的详细统计信息,包括配置信息和健康信息。

Envoy 生成的指标提供了资源(例如监听器和集群)粒度上的网格监控。 因此,为了监控 Envoy 指标,需要了解网格服务和 Envoy 资源之间的连接。

Istio 允许运维人员在每个工作负载实例上选择生成和收集哪个 Envoy 指标。 默认情况下,Istio 只支持 Envoy 生成的统计数据的一小部分, 以避免依赖过多的后端服务,还可以减少与指标收集相关的 CPU 开销。 然而,运维人员可以在需要时轻松地扩展收集到的代理指标集。 这支持有针对性地调试网络行为,同时降低了跨网格监控的总体成本。

Envoy 文档包括了 Envoy 统计信息收集的详细说明。 Envoy 统计里的操作手册提供了有关控制代理级别指标生成的更多信息。

代理级别指标的例子:

envoy_cluster_internal_upstream_rq{response_code_class="2xx",cluster_name="xds-grpc"} 7163envoy_cluster_upstream_rq_completed{cluster_name="xds-grpc"} 7164envoy_cluster_ssl_connection_error{cluster_name="xds-grpc"} 0envoy_cluster_lb_subsets_removed{cluster_name="xds-grpc"} 0envoy_cluster_internal_upstream_rq{response_code="503",cluster_name="xds-grpc"} 1

1.1.3 服务级别指标

除了代理级别指标之外,Istio 还提供了一组用于监控服务通信的面向服务的指标。 这些指标涵盖了四个基本的服务监控需求:延迟、流量、错误和饱和情况。 Istio 带有一组默认的仪表板, 用于监控基于这些指标的服务行为。

默认情况下,标准 Istio 指标会导出到 Prometheus。

服务级别指标的使用完全是可选的。运维人员可以选择关闭指标的生成和收集来满足自身需要。

服务级别指标的例子:

istio_requests_total{connection_security_policy="mutual_tls",destination_app="details",destination_canonical_service="details",destination_canonical_revision="v1",destination_principal="cluster.local/ns/default/sa/default",destination_service="details.default.svc.cluster.local",destination_service_name="details",destination_service_namespace="default",destination_version="v1",destination_workload="details-v1",destination_workload_namespace="default",reporter="destination",request_protocol="http",response_code="200",response_flags="-",source_app="productpage",source_canonical_service="productpage",source_canonical_revision="v1",source_principal="cluster.local/ns/default/sa/default",source_version="v1",source_workload="productpage-v1",source_workload_namespace="default"
} 214

1.1.4 控制平面指标

Istio 控制平面还提供了一组自我监控指标。这些指标容许监控 Istio 自己的行为(这与网格内的服务有所不同)

1.2、分布式追踪

分布式追踪通过监控流经网格的单个请求,提供了一种监控和理解行为的方法。 追踪使网格的运维人员能够理解服务的依赖关系以及在服务网格中的延迟源。

Istio 支持通过 Envoy 代理进行分布式追踪。代理自动为其应用程序生成追踪 span, 只需要应用程序转发适当的请求上下文即可。

Istio 支持很多追踪系统,包括 Zipkin、 Jaeger、 LightStep、 Datadog。 运维人员控制生成追踪的采样率(每个请求生成跟踪数据的速率)。这允许运维人员控制网格生成追踪数据的数量和速率。

更多关于 Istio 分布式追踪的信息可以在分布式追踪 FAQ 中找到。

1.3、访问日志

访问日志提供了一种从单个工作负载实例的角度监控和理解行为的方法。

Istio 能够以一组可配置的格式为服务流量生成访问日志, 使操作员可以完全控制日志记录的方式、内容、时间和地点。 有关更多信息,请参阅获取 Envoy 的访问日志。

Istio 访问日志示例:

[2019-03-06T09:31:27.360Z] "GET /status/418 HTTP/1.1" 418 - "-" 0 135 5 2 "-" "curl/7.60.0" "d209e46f-9ed5-9b61-bbdd-43e22662702a" "httpbin:8000" "127.0.0.1:80" inbound|8000|http|httpbin.default.svc.cluster.local - 172.30.146.73:80 172.30.146.82:38618 outbound_.8000_._.httpbin.default.svc.cluster.local

二、扩展性

WebAssembly 是一种沙盒技术,可以用于扩展 Istio 代理(Envoy)的能力。 Proxy-Wasm 沙盒 API 取代了 Mixer 作为 Istio 主要的扩展机制

Istio 扩展(Proxy-Wasm 插件)有几个组成部分:

  • 过滤器服务提供方接口(SPI) 用于为过滤器构建 Proxy-Wasm 插件。
  • 沙盒 在 Envoy 中嵌入 V8 Wasm 运行时。
  • 主机 API 用于处理请求头,尾和元数据。
  • 调出 API 针对 gRPC 和 HTTP 请求。
  • 统计和记录 API 用于度量统计和监控。

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

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

相关文章

Burp安全扫描Web应用

一、浏览器设置代理 如下图所示,点击火狐浏览器的“扩展和主题”,搜索“代理”。 如下图所示,选择搜索到的第一个代理(选择任何一个都可以)。 如上图所示,第一个点击后,进入如下页面&#xff0…

【Access、Trunk和Hybrid】

概述 Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;Hybrid类型的端口可以允许多个VLAN通过&#xf…

自己编写一个谷歌浏览器插件, 模拟某音直播间自动发消息

闲来没事, 做个插件玩一玩,于是一顿学习。 按照浏览器插件规范,一顿代码编写, 搞了一个简单的插件。仅做学习。 可以实现在直播间自动发消息。 定时轮发。 实现原理: 利用谷歌popub.js 发送消息。 在content-script.…

g2plot如何实现面积图和折线图的动态切换?

一开始的时候显示的是面积图: 当我点击折线图的时候,要变成折线图: 当我再点击面积图的时候,还要变回面积图: 要实现这个功能,得知道g2plot几个重要的API。 参考文档如下:https://g2plot…

防火墙之双机热备篇

为什么要在防火墙上配置双机热备技术呢? 相信大家都知道,为了提高可靠性,避免单点故障 肯定有聪明的小伙伴会想到那为什么不直接多配置两台防火墙,然后再将他们进行线路冗余,不就完成备份了吗? 答案是不…

JDK、JRE、JVM的区别java的基本数据类型

说一说JDK、JRE、JVM的区别在哪? JDK: Java Delopment kit是java工具包,包含了编译器javac,调试器(jdb)以及其他用于开发和调试java程序的工具。JDK是开发人员在开发java应用程序时候所需要的的基本工具。…

海外社媒矩阵为何会被关联?如何IP隔离?

在当今的数字时代,社交媒体已经成为人们日常生活中不可或缺的一部分。通过社交媒体,人们可以与朋友互动,分享生活,甚至进行业务推广和营销。然而,社交媒体账号关联问题逐渐受到广泛关注。社交媒体账号为何会关联&#…

问题清除指南|成功解决pipmatplotlib因为ConnectTimeoutError更新失败问题

前言:跑baseline需要升级matplotlib和pip,在此记录一个错误和一个「别致」的解决方案。 北京时间 14:00 左右,在终端环境中运行命令python -m pip install --upgrade pip,报错: 多次尝试,未果。 隔天上午 0…

Elasticsearch 企业级实战 01:Painless 脚本如何调试?

在企业级应用中,Elasticsearch 常常被用来处理复杂的数据查询和操作。 Painless 是 Elasticsearch 的内置脚本语言,虽然强大,但调试起来并不容易。 本文将详细介绍如何在实战中有效调试 Painless 脚本,以提高开发和运维效率。 本文…

2.javaWeb_请求和响应的处理(Request,Response)

2.请求和响应的处理 文章目录 2.请求和响应的处理一、动态资源和静态资源javax.servlet(包) 二、Servlet体系1.简介2.HttpServlet3.Servlet生命周期 三、Request对象1.ServletRequest1)ServletRequest主要功能有:2)ServletRequest类的常用方法: 2.HttpServletReques…

通过SchedulingConfigurer 接口完成动态定时任务

通过SchedulingConfigurer 接口完成动态定时任务 一.背景 在Spring中,除了使用Scheduled注解外,还可以通过实现SchedulingConfigurer接口来创建定时任务。它们之间的主要区别在于灵活性和动态性。Scheduled注解适用于固定周期的任务,一旦任…

生成式 AI 的未来,对话系统 (Chat)与自主代理 (Agent)相辅相成

目录 1. 概念解释生成式 AI对话系统 (Chat)自主代理 (Agent) 2. 代码示例对话系统示例 (使用 Python 和 NLTK 库)自主代理示例 (使用 Python 模拟简单的自主学习) 3. 逻辑性分析4. 通俗易懂的解释5. 与其他相似概念的对比6. 常见问题和解答7. 技术挑战与解决方案对话系统的技术…

内容安全(深度行为检测技术、IPS、AV、入侵检测方法)

1、深度行为检测技术 深度行为检测技术:是一种基于深度学习和机器学习的技术,它通过分析用户在网络中的行为模式,识别异常或潜在威胁行为,从而保护网络安全和内容安全 分类: 深度包检测技术(Deep Packet…

Kafka Producer发送消息流程之消息异步发送和同步发送

文章目录 1. 异步发送2. 同步发送 1. 异步发送 Kafka默认就是异步发送,在Main线程中的多条消息,没有严格的先后顺序,Sender发送后就继续下一条,异步接受结果。 public class KafkaProducerCallbackTest {public static void mai…

Unity Apple Vision Pro 开发(四):体积相机 Volume Camera

文章目录 📕教程说明📕教程内容概括📕体积相机作用📕创建体积相机📕添加体积相机配置文件📕体积相机配置文件参数📕体积相机的边界盒大小📕体积相机边界盒大小和应用边界盒大小的区别…

【GraphRAG】微软 graphrag 效果实测

GraphRAG 本文将基于以下来源,对Microsoft GraphRAG分析优缺点、以及示例实测分析。 1. Source 代码仓库: Welcome to GraphRAGhttps://microsoft.github.io/graphrag/ 微软文章1(2024.2.13):GraphRAG: Unlocking…

Hadoop3:MR程序的数据倾斜问题处理

一、数据倾斜 什么是数据倾斜? 学过Redis集群的都知道数据倾斜这个问题。 就是大量数据,分配不均匀的现象。 二、MR数据倾斜 1、怎么判断出现数据倾斜? 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记…

Android中OkHttp3中超时时间概述

目录 前言connectTimeoutreadTimeoutwriteTimeoutcallTimeoutpingInterval拓展 前言 可以看到,使用还是很简单的。主要相关的有这五个参数,其中我们常用到是就是connectTimeout、readTimeout和writeTimeout。 再看上图,可以看到默认下connec…

js | Core

http://dmitrysoshnikov.com/ecmascript/javascript-the-core/ Object 是什么? 属性[[prototype]]对象。 例如,下面的,son是对象,foo不是对象。打印出来的son,能看到有一个prototype 对象。 prototype vs _proto_ v…