OpenTelemetry系列 - 第3篇 OpenTelemetry Collector

目录

    • 一、介绍Collector
    • 二、安装Collector
      • 2.1 Docker方式
      • 2.2 Windows系统安装
    • 三、配置Collector
    • 四、exporter配置
      • 4.1 导出到Skywalking
        • 4.1.1 导出metrics、logs
        • 4.1.2 通过zipkin导出traces到Skywalking
      • 4.2 导出到Jaeger
      • 4.3 导出到zipkin
      • 4.4 导出到Prometheus
        • 4.4.1 Prometheus主动抓取(PULL)
          • 4.4.1.1 启动Prometheus
          • 4.4.1.2 OTel Collector配置
          • 4.4.1.3 查询Prometheus中的metric
        • 4.4.2 向Prometheus推送(PUSH)
      • 4.5 导出到debug - 控制台日志
      • 4.6 导出到文件file

一、介绍Collector

OpenTelemetry Collector是一个与供应商无关的代理,可以接收、处理和导出遥测数据。

  • 它支持接收多种格式的遥测数据(例如,OTLP、Jaeger、Prometheus,以及许多商业/专有工具)
  • 并将数据发送到一个或多个后端
  • 它还支持在导出遥测数据之前对其进行处理和过滤

在这里插入图片描述
Collector包含4种组件:

  • 在这里插入图片描述 Receivers 接收器 - 接收器可以是基于推或拉的,它是数据进入收集器的方式。接收器可以支持一个或多个数据源。

  • 在这里插入图片描述Processors 处理器 - 处理器在接收和导出之间的数据上运行。处理器是可选的,但有些是推荐的。

  • 在这里插入图片描述Exporters 导出器 - 导出器可以是基于推或拉的,它是将数据发送到一个或多个后端/目的地的方式。导出器可以支持一个或多个数据源。

  • 在这里插入图片描述Connectors 连接器 - 连接器既是一个Exporter,也是一个Receiver。顾名思义,连接器连接两个管道:它作为导出器在一个管道的末端使用数据,并作为接收器在另一个管道的开始发出数据。它可以使用和发送相同数据类型的数据,也可以使用不同数据类型的数据。连接器可以生成和发送数据以汇总所消费的数据,也可以简单地复制或路由数据。

二、安装Collector

2.1 Docker方式

Docker命令启动:

docker run 
-v $(pwd)/config.yaml:/etc/otelcol-contrib/config.yaml 
otel/opentelemetry-collector-contrib:0.89.0

Docker Compose启动:

otel-collector:image: otel/opentelemetry-collector-contribvolumes:- ./otel-collector-config.yaml:/etc/otelcol-contrib/config.yamlports:- 1888:1888 # pprof extension- 8888:8888 # Prometheus metrics exposed by the Collector- 8889:8889 # Prometheus exporter metrics- 13133:13133 # health_check extension- 4317:4317 # OTLP gRPC receiver- 4318:4318 # OTLP http receiver- 55679:55679 # zpages extension

2.2 Windows系统安装

下载最新Windows版Release包:
https://github.com/open-telemetry/opentelemetry-collector-releases/releases
在这里插入图片描述
下载成功后解压缩:
在这里插入图片描述
添加自定义配置文件otelcol-config.yaml(名称随意,与后续启动命令中的–config参数值对应即可):

如下为基础配置,仅将traces, metrics, logs导出到控制台输出

# 声明接收器
receivers:# OTLP接收器otlp:protocols:grpc:http:# 声明处理器
processors:batch:# 声明导出器
exporters:# 导出到日志debug:verbosity: detailedsampling_initial: 5sampling_thereafter: 200# 声明扩展
extensions:health_check:pprof:zpages:# 组合最终生效的配置
service:extensions: [health_check, pprof, zpages]pipelines:# traces配置traces:receivers: [otlp]processors: [batch]exporters: [debug]# metrics配置metrics:receivers: [otlp]processors: [batch]exporters: [debug]# logs配置logs:receivers: [otlp]processors: [batch]exporters: [debug]

打开cmd窗口,执行如下命令:

otelcol-contrib.exe --config otelcol-config.yaml

三、配置Collector

Collector各组件支持的配置列表如下:

  • receivers
    • otlp
    • jaeger
    • zipkin
    • kafka
    • prometheus
    • opencensus
    • fluentforward
    • hostmetrics
  • processors
    • batch, attributes, filter, resource, memory_limiter, probablistic_sampler, span, …
  • exporters
    • file
    • kafka
    • debug
    • opencensus
    • otlp
    • otlphttp
    • prometheus
    • prometheusremotewrite
    • zipkin
  • extensions
    • health_check
    • pprof
    • zpages
    • memory_ballast

如下为我本地测试的配置:

  • receivers:OTLP
  • exporters:
    • traces:[debug, file, otlp/jaege, zipkin/skywalking]
    • metrics:[debug, file, skywalking, prometheus]
    • logs:[debug, file, skywalking]
# 声明接收器
receivers:# OTLP接收器otlp:protocols:grpc:http:# 声明处理器
processors:batch:# 声明导出器
exporters:# 导出到日志debug:verbosity: basicsampling_initial: 5sampling_thereafter: 200# 导出到文件file:path: ./file_export/file.logrotation:max_megabytes: 10max_days: 3max_backups: 3localtime: trueformat: json# 启用压缩后,无法直接查看原始文本#compression: zstd# 导出traces到Jaeger(借助Jaeger内嵌OTel Collector gRPC 4137端口)otlp/jaeger:endpoint: http://10.170.xx.xxx:4317tls:insecure: true# 导出到Skywalking(metrics, logs)skywalking:endpoint: http://localhost:11800tls:insecure: true  # 通过zipkin导出traces到Skywalkingzipkin/skywalking:# 对应Skywalking receiver-zipkin配置endpoint: http://localhost:9411/api/v2/spans# Prometheus导出器(由Prometheus主动拉取)prometheus:endpoint: "127.0.0.1:1234"# 声明扩展
extensions:health_check:pprof:zpages:# 组合最终生效的配置
service:extensions: [health_check, pprof, zpages]pipelines:# traces配置traces:receivers: [otlp]processors: [batch]exporters: [debug, file, otlp/jaeger, zipkin/skywalking]# metrics配置metrics:receivers: [otlp]processors: [batch]exporters: [debug, file, skywalking, prometheus]# logs配置logs:receivers: [otlp]processors: [batch]exporters: [debug, file, skywalking]

关于Collector的更多配置可参见下表:

组件参考链接
官方Collector代码库https://github.com/open-telemetry/opentelemetry-collector
官方receivershttps://github.com/open-telemetry/opentelemetry-collector/blob/main/receiver/README.md
官方exportershttps://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/README.md
社区Collector贡献代码库https://github.com/open-telemetry/opentelemetry-collector-contrib
社区receivershttps://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver
社区exportershttps://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter

四、exporter配置

4.1 导出到Skywalking

详细配置可参见:
https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/skywalkingexporter/README.md

使用skywalk -data-collect-protocol格式通过gRPC导出数据。默认情况下,此导出程序需要TLS并提供排队重试功能。

4.1.1 导出metrics、logs

目前skywalking导出器仅支持导出metrics、logs,不支持traces,如果在traces使用skywalking导出器,报错如下:

2023/11/21 14:36:40 collector server run finished with error: failed to build pipelines: 
failed to create "skywalking" exporter for data type "traces": telemetry type is not supported

需要进行以下设置:

  • endpoint(无默认值):host:导出器使用gRPC协议向其发送SkyWalking日志数据的端口。这里描述了有效的语法。如果使用https方案,则启用客户端传输安全性并覆盖不安全设置。
  • num_streams (default = 2):发送grpc请求的grpc流的个数。

默认情况下,TLS是启用的,必须在TLS:下配置。

  • insecure (default = false):是否为导出器连接启用客户端传输安全性。

因此,在tls下还需要以下参数::

  • cert_file(无默认值):用于TLS所需连接的TLS证书的路径。应该只在insecure设置为false时使用。
  • key_file(无默认值):用于TLS所需连接的TLS密钥的路径。应该只在insecure设置为false时使用。

注:
Skywalking后端默认端口:

  • 11800 - gRPC api
  • 12800 - HTTP REST api。
  • 8080 - UI监听端口,UI请求127.0.0.1/12800运行GraphQL查询
exporters:skywalking:endpoint: "192.168.1.5:11800"tls:insecure: true  num_streams: 5  skywalking/2:endpoint: "10.18.7.4:11800"compression: "gzip"tls:cert_file: file.certkey_file: file.keytimeout: 10s
4.1.2 通过zipkin导出traces到Skywalking

https://skywalking.apache.org/docs/main/v9.6.0/en/setup/backend/otlp-trace/

修改Skywaling配置config/application.yaml

receiver-zipkin:# 修改为defaultselector: ${SW_RECEIVER_ZIPKIN:default}default:# Defines a set of span tag keys which are searchable.# The max length of key=value should be less than 256 or will be dropped.searchableTracesTags: ${SW_ZIPKIN_SEARCHABLE_TAG_KEYS:http.method}# The sample rate precision is 1/10000, should be between 0 and 10000sampleRate: ${SW_ZIPKIN_SAMPLE_RATE:10000}## The below configs are for OAP collect zipkin trace from HTTPenableHttpCollector: ${SW_ZIPKIN_HTTP_COLLECTOR_ENABLED:true}restHost: ${SW_RECEIVER_ZIPKIN_REST_HOST:0.0.0.0}restPort: ${SW_RECEIVER_ZIPKIN_REST_PORT:9411}restContextPath: ${SW_RECEIVER_ZIPKIN_REST_CONTEXT_PATH:/}restMaxThreads: ${SW_RECEIVER_ZIPKIN_REST_MAX_THREADS:200}restIdleTimeOut: ${SW_RECEIVER_ZIPKIN_REST_IDLE_TIMEOUT:30000}restAcceptQueueSize: ${SW_RECEIVER_ZIPKIN_REST_QUEUE_SIZE:0}## The below configs are for OAP collect zipkin trace from kafkaenableKafkaCollector: ${SW_ZIPKIN_KAFKA_COLLECTOR_ENABLED:false}kafkaBootstrapServers: ${SW_ZIPKIN_KAFKA_SERVERS:localhost:9092}kafkaGroupId: ${SW_ZIPKIN_KAFKA_GROUP_ID:zipkin}kafkaTopic: ${SW_ZIPKIN_KAFKA_TOPIC:zipkin}# Kafka consumer config, JSON format as Properties. If it contains the same key with above, would override.kafkaConsumerConfig: ${SW_ZIPKIN_KAFKA_CONSUMER_CONFIG:"{\"auto.offset.reset\":\"earliest\",\"enable.auto.commit\":true}"}# The Count of the topic consumerskafkaConsumers: ${SW_ZIPKIN_KAFKA_CONSUMERS:1}kafkaHandlerThreadPoolSize: ${SW_ZIPKIN_KAFKA_HANDLER_THREAD_POOL_SIZE:-1}kafkaHandlerThreadPoolQueueSize: ${SW_ZIPKIN_KAFKA_HANDLER_THREAD_POOL_QUEUE_SIZE:-1}# This module is for Zipkin query API and support zipkin-lens UI
query-zipkin:selector: ${SW_QUERY_ZIPKIN:default}default:# For HTTP serverrestHost: ${SW_QUERY_ZIPKIN_REST_HOST:0.0.0.0}restPort: ${SW_QUERY_ZIPKIN_REST_PORT:9412}restContextPath: ${SW_QUERY_ZIPKIN_REST_CONTEXT_PATH:/zipkin}restMaxThreads: ${SW_QUERY_ZIPKIN_REST_MAX_THREADS:200}restIdleTimeOut: ${SW_QUERY_ZIPKIN_REST_IDLE_TIMEOUT:30000}restAcceptQueueSize: ${SW_QUERY_ZIPKIN_REST_QUEUE_SIZE:0}# Default look back for traces and autocompleteTags, 1 day in millislookback: ${SW_QUERY_ZIPKIN_LOOKBACK:86400000}# The Cache-Control max-age (seconds) for serviceNames, remoteServiceNames and spanNamesnamesMaxAge: ${SW_QUERY_ZIPKIN_NAMES_MAX_AGE:300}## The below config are OAP support for zipkin-lens UI# Default traces query max sizeuiQueryLimit: ${SW_QUERY_ZIPKIN_UI_QUERY_LIMIT:10}# Default look back on the UI for search traces, 15 minutes in millisuiDefaultLookback: ${SW_QUERY_ZIPKIN_UI_DEFAULT_LOOKBACK:900000}

OTel Collector配置:

# 声明接收器
receivers:# OTLP接收器otlp:protocols:grpc:http:# 声明处理器
processors:batch:# 声明导出器
exporters:# 导出到Skywalking(metrics, logs)skywalking:endpoint: http://localhost:11800tls:insecure: true  # 通过zipkin导出traces到Skywalkingzipkin/skywalking:# 对应Skywalking receiver-zipkin配置endpoint: http://localhost:9411/api/v2/spans# 声明扩展
extensions:health_check:pprof:zpages:# 组合最终生效的配置
service:extensions: [health_check, pprof, zpages]pipelines:# traces配置traces:receivers: [otlp]processors: [batch]exporters: [zipkin/skywalking]# metrics配置metrics:receivers: [otlp]processors: [batch]exporters: [skywalking]# logs配置logs:receivers: [otlp]processors: [batch]exporters: [skywalking]

通过Skywalking的zipkin UI端点进行查看:http://localhost:8080/zipkin/
在这里插入图片描述
在这里插入图片描述

可通过上图中的Traces ID,可通过Skywalking UI查询该Trace对应的日志:http://localhost:8080/General-Service/Services
在这里插入图片描述

4.2 导出到Jaeger

最新版本的OTel Collector已经不支持Jaeger导出器(Stackoverflow/#77475771),想要通过Collector导出数据到Jaeger则需借助otlp导出器。目前最新版本的Jaeger已经内嵌OTLP Collector,暴露的端口也同为4317(gRPC),4318(HTTP)。

docker run --rm --name jaeger \-e COLLECTOR_ZIPKIN_HOST_PORT=:9411 \-p 6831:6831/udp \-p 6832:6832/udp \-p 5778:5778 \-p 16686:16686 \-p 4317:4317 \-p 4318:4318 \-p 14250:14250 \-p 14268:14268 \-p 14269:14269 \-p 9411:9411 \jaegertracing/all-in-one:1.51
PortProtocolComponentFunction
6831UDPagentaccept jaeger.thrift over Thrift-compact protocol (used by most SDKs)
6832UDPagentaccept jaeger.thrift over Thrift-binary protocol (used by Node.js SDK)
5775UDPagent(deprecated) accept zipkin.thrift over compact Thrift protocol (used by legacy clients only)
5778HTTPagentserve configs (sampling, etc.)
16686HTTPqueryserve frontend
4317HTTPcollectoraccept OpenTelemetry Protocol (OTLP) over gRPC
4318HTTPcollectoraccept OpenTelemetry Protocol (OTLP) over HTTP
14268HTTPcollectoraccept jaeger.thrift directly from clients
14250HTTPcollectoraccept model.proto
9411HTTPcollectorZipkin compatible endpoint (optional)

https://opentelemetry.io/docs/collector/configuration/#exporters

exporters:# Data sources: tracesotlp/jaeger:endpoint: jaeger-all-in-one:4317tls:cert_file: cert.pemkey_file: cert-key.pem# Data sources: tracesotlp/jaeger:endpoint: jaeger-all-in-one:14250tls:insecure: true

导出到Jaeger中的traces展示:
在这里插入图片描述

在这里插入图片描述

4.3 导出到zipkin

https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/exporter/zipkinexporter/README.md

exporters:zipkin/nontls:endpoint: "http://some.url:9411/api/v2/spans"format: protodefault_service_name: unknown-servicezipkin/withtls:endpoint: "https://some.url:9411/api/v2/spans"zipkin/tlsnoverify:endpoint: "https://some.url:9411/api/v2/spans"tls:insecure_skip_verify: true

导出到zipkin中的traces展示:
在这里插入图片描述
在这里插入图片描述

4.4 导出到Prometheus

4.4.1 Prometheus主动抓取(PULL)

https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusexporter

exporters:prometheus:endpoint: "1.2.3.4:1234"tls:ca_file: "/path/to/ca.pem"cert_file: "/path/to/cert.pem"key_file: "/path/to/key.pem"namespace: test-spaceconst_labels:label1: value1"another label": spaced valuesend_timestamps: truemetric_expiration: 180menable_open_metrics: trueadd_metric_suffixes: falseresource_to_telemetry_conversion:enabled: true

最小配置:

exporters:prometheus:endpoint: "127.0.0.1:1234"
4.4.1.1 启动Prometheus
# 修改默认端口9090(避免本地端口冲突)
prometheus.exe --web.listen-address=:8001 --config.file=prometheus.yml

在这里插入图片描述

prometheus.yaml:

# my global config
global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: "prometheus"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:# 原默认为localhost:9090- targets: ["localhost:8001"]# OTel Collector metrics exporter- job_name: "otelcol"# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ["localhost:1234"]
4.4.1.2 OTel Collector配置
# 声明接收器
receivers:# OTLP接收器otlp:protocols:grpc:http:# 声明处理器
processors:batch:# 声明导出器
exporters:# 导出到日志debug:verbosity: basicsampling_initial: 5sampling_thereafter: 200# Prometheus导出器(由Prometheus主动拉取)prometheus:endpoint: "127.0.0.1:1234"# 声明扩展
extensions:health_check:pprof:zpages:# 组合最终生效的配置
service:extensions: [health_check, pprof, zpages]pipelines:# traces配置traces:receivers: [otlp]processors: [batch]exporters: [debug]# metrics配置metrics:receivers: [otlp]processors: [batch]exporters: [debug, prometheus]# logs配置logs:receivers: [otlp]processors: [batch]exporters: [debug]
4.4.1.3 查询Prometheus中的metric

通过Prometheus UI查询:
在这里插入图片描述

在这里插入图片描述

通过Grafana Dashboard(自定义)查询:
在这里插入图片描述
Grafana DashBoard对应的PromQL如下:

# Metric - findGoodsPage_count
rate(findGoodsPage_count_total[5m])# JVM Memeory Used
sum(jvm_memory_used_bytes) by (exported_job) / 1000000# Http Instance QPS
sum(rate(http_server_requests_seconds_count[5m])) by (exported_job)# Http URI QPS
rate(http_server_requests_seconds_count[5m])
4.4.2 向Prometheus推送(PUSH)

https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/prometheusremotewriteexporter
Prometheus Remote Write Exporter发送OpenTelemetry指标到Prometheus远程写入兼容的后端,如Cortex, Mimir, Thanos。默认情况下,此导出程序需要TLS并提供排队重试功能。

4.5 导出到debug - 控制台日志

https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/debugexporter/README.md
以下设置是可选的:

  • verbosity (default = basic):日志导出的详细信息(detailed | normal | basic)。当设置为detailed时,将详细记录管道数据。
  • sampling_initial (default = 2):每秒初始记录的消息数。
  • sampling_hereafter (default = 500):记录初始消息后的采样率(每第m条消息记录一次)。更多细节请参考Zap文档。关于采样参数如何影响消息数量。
exporters:debug:verbosity: detailedsampling_initial: 5sampling_thereafter: 200

4.6 导出到文件file

https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/fileexporter

exporters:file/no_rotation:path: ./foofile/rotation_with_default_settings:path: ./foorotation:file/rotation_with_custom_settings:path: ./foorotation:max_megabytes: 10max_days: 3max_backups: 3localtime: trueformat: protocompression: zstdfile/flush_every_5_seconds:path: ./fooflush_interval: 5

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

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

相关文章

【报名】2023产业区块链生态日暨 FISCO BCOS 开源六周年生态大会

作为2023深圳国际金融科技节系列活动之一&#xff0c;由深圳市地方金融监督管理局指导&#xff0c;微众银行、金链盟主办的“2023产业区块链生态日暨FISCO BCOS开源六周年生态大会”将于12月15日下午14:00在深圳举办。 今年的盛会将进一步升级&#xff0c;以“FISCO BCOS和TA的…

20231202将RK3399的挖掘机开发板在Andorid12系统下编译ENG模式

20231202将RK3399的挖掘机开发板在Andorid12系统下编译ENG模式 2023/12/2 10:21 百度搜索&#xff1a;RK3399 编译 ENG版本 RK3399 lunch ENG Z:\rk_android12_220722\device\rockchip\rk3399\AndroidProducts.mk # # Copyright 2014 The Android Open-Source Project # # Lice…

php5构造无字母数字的webshell实现任意命令执行

目录 引言 如果是在php7 如果是在php5 现在我们来上传文件 最后的结果&#xff1a; 看本篇前可以先看这一篇&#xff1a;利用异或、取反、自增bypass_webshell_waf-CSDN博客 引言 上一篇介绍了如何构造出一个无字母数字的webshell&#xff0c;但是如果后端的代码变成了这…

采购业务中的主数据

目录 一、维护BP主数据业务伙伴BP的概念业务伙伴涉及的表业务伙伴维护操作一次性客商数据 二、维护物料主数据三、维护采购信息记录四、与FI相关集成点物料主数据的价格控制评估类与科目确定 一、维护BP主数据 业务伙伴BP的概念 在S/4HANA中&#xff0c;SAP引入了BP(Business…

使用 Java 来完成高德地图开发平台解决定位和解析问题

三军可夺帅也&#xff0c;匹夫不可夺志也 1、高德开发平台&#xff1a;平台地址 2、注册高德开发平台账号 3、导入SDK J版 import java.net.URL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.alibaba.fastjson.JSONObject;public class main {priva…

SpringBoot整合Activiti7——消息事件(十)

文章目录 消息事件开始事件中间事件边界事件代码实现xml文件测试流程流程执行步骤 消息事件 消息事件只有一个接收者&#xff0c;消息具有名字与载荷。 信息会储存在 act_ru_event_subscr 表中。 <!-- 定义消息 --> <message id"msgId1" name"msgName…

聊聊什么是IO流

目录 Java IOIO 基础Java IO 流了解吗&#xff1f; IO 设计模式1、装饰器模式2、适配器模式适配器模式和装饰器模式有什么区别呢&#xff1f;3、工厂模式4、观察者模式 IO 模型有哪些常见的 IO 模型&#xff1f;BIO(Blocking I/O)NIO (Non-blocking/New I/O)AIO (Asynchronous …

51单片机的智能加湿器控制系统【含proteus仿真+程序+报告+原理图】

1、主要功能 该系统由AT89C51单片机LCD1602显示模块DHT11湿度传感器模块继电器等模块构成。主要适用于智能自动加湿器、湿度保持、湿度控制等相似项目。 可实现基本功能: 1、LCD1602液晶屏实时显示湿度信息 2、DHT11采集湿度 3、按键可以调节适宜人体湿度的阈值范围&#xff0…

西南科技大学模拟电子技术实验三(BJT单管共射放大电路测试)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程,越详细越好。用公式输入法完成相关公式内容,不得贴手写图片。(注意:从抽象公式直接得出结果,不得分,页数可根据内容调整) 二、画出并填写实验指导书上…

京东数据运营-京东数据开放平台-鲸参谋10月粮油调味市场品牌店铺销售数据分析

鲸参谋监测的京东平台10月份料油调味市场销售数据已出炉&#xff01; 根据鲸参谋数据显示&#xff0c;今年10月份&#xff0c;京东平台粮油调味市场的销量将近4600万&#xff0c;环比增长约10%&#xff0c;同比降低约20%&#xff1b;销售额将近19亿&#xff0c;环比增长约4%&am…

Apache Flink(一):Apache Flink是什么?

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

五、ZooKeeper的shell操作

目录 1、客户端连接 2、shell基本操作 2.1 操作命令

力扣225-用队列实现栈

文章目录 力扣225-用队列实现栈示例代码实现总结收获 力扣225-用队列实现栈 示例 代码实现 class MyStack {Queue<Integer>queue1;Queue<Integer>queue2;public MyStack() {queue1new LinkedList<Integer>();queue2new LinkedList<Integer>();}public…

【LeetCode:1094. 拼车 | 差分数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【高效开发工具系列】Hutool Http工具类

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PDF转WORD

无环境的&#xff0c;windows可下载可执行文件&#xff1a;https://download.csdn.net/download/shfei10100/88588106 有python运行环境的&#xff0c;可自行运行&#xff1b; 代码如下&#xff1a; from pdf2docx import Converterimport tkinter as tk from tkinter impor…

Windows11系统下内存占用率过高如何下降

. # &#x1f4d1;前言 本文主要是win11系统下CPU占用率过高如何下降的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日…

每日一题:NowCower-JZ64.求1+2+3+...+n

每日一题系列&#xff08;day 10&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

Git and solve the problem denied to xx

创建仓库 配置Git git config user.name git config user.email git config MINGW64 /e/GithubCode $ git config --global user.name "name"MINGW64 /e/GithubCode $ git config --global user.email "mailxx.com" 生产ssh ssh-keygen -t rsa -C “xx…

选择排序以及改进方案

选择排序以及改进方案 介绍&#xff1a; 选择排序是一种简单直观的排序算法&#xff0c;它的基本思想是在未排序序列中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;然后将其放在已排序序列的末尾。选择排序的过程就像是每次从待排序的元素中选择最小的一个&…