Confluent Cloud Kafka 可观测性最佳实践

Confluent Cloud 介绍

Confluent Cloud 是一个完全托管的 Apache Kafka 服务,提供高可用性和可扩展性,旨在简化数据流处理和实时数据集成。用户可以轻松创建和管理 Kafka 集群,而无需担心基础设施的维护和管理。Confluent Cloud 支持多种数据源和目标,允许用户在云环境中实现数据流的无缝传输和处理。此外,它还提供强大的工具和功能,如 Schema Registry、Kafka Connect 和 KSQL,使开发者能够快速构建和部署流处理应用程序。通过 Confluent Cloud,企业可以更高效地利用实时数据,推动业务创新和数字化转型。

Confluent Cloud 旨在为开发者和企业提供一种简单、高效的方式来构建、部署和管理实时数据管道和流式应用程序。以下是 Confluent Cloud 的几个关键特点:

  • 完全托管:Confluent Cloud 负责处理 Kafka 集群的维护和管理工作,包括配置、扩展、更新和故障恢复,让用户可以专注于应用程序的开发。
  • 高可用性:提供高可靠性和容错能力,确保数据流和应用程序的稳定运行。
  • 可扩展性:根据需求自动或手动扩展资源,轻松应对流量高峰。
  • 安全性:提供加密、身份验证和授权机制,保护数据安全和隐私。
  • 性能优化:自动优化性能,包括负载均衡和分区管理,以提高数据处理效率。
  • 成本效益:按使用量付费,无需预先投资昂贵的硬件和维护成本。

可观测性对于 Confluent Cloud 尤为重要,它能够提供对数据流和系统性能的深入洞察,实时跟踪其性能指标,确保数据流的稳定性和可靠性,及时发现并解决潜在问题,优化资源分配,并保障业务连续性。通过监控,可以获得关键洞察,比如流量模式、延迟、错误率等,从而帮助维护服务质量,预防系统故障,并支持数据驱动的决策制定。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

部署 DataKit

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

登录观测云控制台,在集成 -> DataKit 选择对应安装方式,当前采用 Linux 主机部署 DataKit 。

指标采集

Confluent Cloud 指标集成配置

1、登陆 Confluent Cloud ,在 ADMINISTRATION 下选择 Metrics 。

2、在 Metrics 页点击按钮 New integration ,选择监控类型 Prometheus 。

3、点击 Generate Cloud API key 按钮,生成 API Key 。

4、Resources 选择 All Kafka clusters,生成 Prometheus 的 scrape_configs 。

scrape_configs:
  - job_name: Confluent Cloud
    scrape_interval: 1m
    scrape_timeout: 1m
    honor_timestamps: true
    static_configs:
      - targets:
        - api.telemetry.confluent.cloud
    scheme: https
    basic_auth:
      username: H5BO.....
      password: RDCgMwguHMy.....
    metrics_path: /v2/metrics/cloud/export
    params:
      "resource.kafka.id":
        - lkc-xxxx

5、点击页面 Copy 按钮进行内容复制。

DataKit 采集器配置

由于 Confluent Cloud 能够直接暴露 metrics url ,所以可以直接通过 prom 采集器进行采集。

进入 DataKit 安装目录下的 conf.d/prom ,复制 prom.conf.sample 为 confluent_cloud.conf 。

cp prom.conf.sample confluent_cloud.conf

调整 confluent_cloud.conf 内容如下:

# {"version": "1.61.0-testing_testing-graphite-metric-set", "desc": "do NOT edit this line"}

[[inputs.prom]]
  ## Exporter URLs.
  urls = ["https://api.telemetry.confluent.cloud/v2/metrics/cloud/export?resource.kafka.id=lkc-xxxx"]
  
  source = "confluent_cloud"

  ## Add HTTP headers to data pulling (Example basic authentication).
  [inputs.prom.http_headers]
     Authorization = "Basic QkXXXXXXXXXXXX"

  interval = "60s"

调整参数说明 :

  • urls: 将 Confluent Cloud 复制的内容调整下,拼接成 url ,如果有多个 kafka 资源,则用逗号分割。
  • Authorization: 将用户名和密码转化成 Basic Authorization 格式,可以使用转化工具 在线生成Basic Auth、http基础认证密码生成、 basic access authentication在线生成、Basic Auth密码在线解密--查错网 。
  • interval: 调整为 60s ,由于 Confluent Cloud API 限制,这个值不能小于 60s ,低于这个值将导致无法采集数据。

关键指标

confluent 指标集

指标名称描述单位
kafka_server_active_connection_count活跃认证连接数count
kafka_server_consumer_lag_offsets组成员提交的偏移量与分区的高水位标记之间的滞后量。count
kafka_server_partition_count分区数量count
kafka_server_received_bytes从网络接收的客户数据字节数的增量计数。每个样本是自上一个数据样本以来接收的字节数。计数每60秒采样一次。byte
kafka_server_received_records接收的记录数的增量计数。每个样本是自上一个数据样本以来接收的记录数。计数每60秒采样一次。count
kafka_server_request_bytes指定请求类型通过网络发送的总请求字节数的增量计数。每个样本是自上一个数据点以来发送的字节数。计数每60秒采样一次。byte
kafka_server_request_count通过网络接收的请求数的增量计数。每个样本是自上一个数据点以来接收的请求数。计数每60秒采样一次。count
kafka_server_response_bytes指定响应类型通过网络发送的总响应字节数的增量计数。每个样本是自上一个数据点以来发送的字节数。计数每60秒采样一次。byte
kafka_server_rest_produce_request_bytesKafka REST产生调用发送的总请求字节数的增量计数。byte
kafka_server_retained_bytes集群保留的字节数当前计数。计数每60秒采样一次。byte
kafka_server_sent_bytes通过网络发送的客户数据字节数的增量计数。每个样本是自上一个数据点以来发送的字节数。计数每60秒采样一次。byte
kafka_server_sent_records发送的记录数的增量计数。每个样本是自上一个数据点以来发送的记录数。计数每60秒采样一次。count
kafka_server_successful_authentication_count成功认证的增量计数。每个样本是自上一个数据点以来成功认证的数量。计数每60秒采样一次。count

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Confluent Cloud ”, 选择 “Confluent Cloud 监控视图”,点击 “确定” 即可添加内置视图。

监控器(告警)

Kafka 消息堆积

滞后量过大,表示消费者无法及时处理消息。

Kafka 分区创建太高

每个分区都会占用一定的磁盘空间,并且需要维护其状态信息。过多的分区会增加磁盘和网络I/O的负载,进而导致 Kafka 的性能下降。

Kafka 服务认证成功次数过高报警

认证次数过高,可能存在帐号被攻击的行为。

总结

Confluent Cloud 是一个由 Confluent 提供的全托管 Apache Kafka 服务,通过观测云对 Confluent Cloud 进行全面可观测性,实时跟踪其性能指标,确保数据流的稳定性和可靠性,及时发现并解决潜在问题,优化资源分配,并保障业务连续性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

StartAI图生图局部重绘,让画面细节焕发新生!!

在设计的世界里,每一个细节都承载着我们的创意与心血。然而,有时我们总会遇到一些不尽如人意的画面细节,它们如同瑕疵般破坏了整体的和谐与美感。今天,我要向大家推荐一款强大的工具——StartAI的局部重绘功能,它正是我…

易语言 OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

重温设计模式--单例模式

文章目录 单例模式(Singleton Pattern)概述单例模式的实现方式及代码示例1. 饿汉式单例(在程序启动时就创建实例)2. 懒汉式单例(在第一次使用时才创建实例) 单例模式的注意事项应用场景 C代码懒汉模式-经典…

ArKTS基础组件3

一.PatternLock 图案密码锁组件,以九宫格图案的方式输入密码,用于密码验证场景 属性: sideLength:设置组件的宽度和高度(宽高相同)。设置为0或负数时组件不显示。 参数名类型必填说明valueLength是组件的宽度和高度。默认值&a…

python2:数据、运算符与表达式

一,数据类型: 数据类型是计算机对现实中数据的抽象,不同的数据类型其存储格式、数据范围、 计算要求都各不相同。 Python中的数据类型可以分为以下三类 基础类型:字符串(str)、整数(int)、实数(float)、布尔(bool)、复数(compl…

tortoisegit推送失败

tortoisegit推送失败 git.exe push --progress -- "origin" testLidar:testLidar /usr/bin/bash: gitgithub.com: No such file or directory fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposit…

pyinstaller打包资源文件和ini配置文件怎么放

1.如果出现无法成功完成操作,因为文件包含病毒或潜在的垃圾软件,说明你的版本太高,更换pyinstaller版本。 pip install pyinstaller6.2.02.一开始打包的时windows下尽量选择打成文件夹的并且要是带命令行窗口的,容易查看错误。 …

autMan奥特曼机器人-autMan的PHP环境

直装版请自行安装php环境。 docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add curl apk add php-curl

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录,好像和VUE项目打包没什么区别... 用HX打开项目,首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…

【Leetcode】1705. 吃苹果的最大数目

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 有一棵特殊的苹果树,一连 n n n 天,每天都可以长出若干个苹果。在第 i i i 天,树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

4、数据结构与算法解析(C语言版)--栈

栈的数据存储遵循“后进先出的规则”&#xff0c;这在计算机里面是非常有用的&#xff0c;比如word等编辑软件的"撤销"功能&#xff0c;就是使用栈进行实现的。 1、创建项目 main.h #ifndef _MAIN_H #define _MAIN_H#include <stdio.h> #include <stdlib.…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域&#xff0c;追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证&#xff0c;成为能够帮助企业降低安装成本&#xff0c;提高设备性能的创新解决方案。 【全球认证&#xff0c;品质保障】ATV320 系列秉持施耐德…

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包&#xff08;BSP&#xf…

并发编程(19)——引用计数型无锁栈

文章目录 十九、day191. 引用计数2. 代码实现2.1 单引用计数器无锁栈2.2 双引用计数器无锁栈 3. 本节的一些理解 十九、day19 上一节我们学习通过侯删链表以及风险指针与侯删链表的组合两种方式实现了并发无锁栈&#xff0c;但是这两种方式有以下缺点&#xff1a; 第一种方式…

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…

步进电机直线插补

基础原理 代码部分

数据结构经典算法总复习(上卷)

第一章&#xff1a;数据结构导论 无重要考点&#xff0c;仅需了解时间复杂度。 第二章&#xff1a;线性表 1.获得线性表第i个元素 void GetElem_sq(SqList L, int i, ElemType &e) {if (i<1 || i>L.length) ErrorMsg("Invalid i value"); //注意错误监…

Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率

背景&#xff1a;家里配置了一台 Windows 电脑&#xff0c;有时候需要用到 vscode 开发测试一些代码&#xff0c;在使用过程中发现原生 windows 敲代码不是很友好&#xff0c;于是想到配置 wsl&#xff0c;安装 Ubuntu&#xff0c;并安装配置 zsh shell&#xff0c;同时配置 gi…

PE文件结构

PE文件是Windows系统下可执行文件的总称&#xff0c;英文全称 Portable Executable 可移植的可执行文件&#xff0c;常见的有exe、dll、sys、com、ocx 对于学习反&#xff08;木马、免杀、病毒、外挂、内核&#xff09;&#xff0c;了解PE文件结构是非常有必要且非常非常重要的…

Helm 官方脚本

Helm 官方脚本 #!/usr/bin/env bash# Copyright The Helm Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # …