96SEO 2026-08-09 20:49 6
项目中有一个业务接口。涉及多表关联、缓存查询、外部服务调用,业务链路很长。怎么说呢,上线后使用者反馈“慢”,但具体慢在哪一步?是数据库查询,是外部调用?还是序列化,靠日志很难定位,本地复现也困难。

我的诉求很简单:想上好监控,做到心里有数。
这就是我们集成可观测性的起点——不是为了“高大上”,而是为了解决一个具体的问题。
此次集成,用到的主要组件有四个:OpenTelemetry、Promeus、Jaeger、Grafana;日志部分已经通过 ELK完成。说到整体架构如下,
| 组件 | 作用 | 说明 |
|---|---|---|
| OpenTelemetry Collector | 数据中枢,接收应用推送的 OTLP 数据并分发给后端 | |
| Promeus | 指标存储,保存 QPS、延迟、内存等时序数据 | |
| Jaeger | 链路追踪。存每次请求的完整调用链 | |
| Grafana | 可视化,把 Promeus 与 Jaeger 的数据做成图表 | |
| ElasticSearch | 日志存储,通过 Logstash 将程序产生的各类日志传输并持久化 |
在我的实践中,只在一台中心服务器上部署 Jaeger、Promeus 与 Grafana;所有应用节点有效,
Collector 是整个栈的主要枢纽。应用只与它通信,它负责把数据分发给 Promeus 与 Jaeger。
主要配置:
receivers:
otlp这方面,protocols:
说到grpc,endpoint: "0.0.0.0:4317"
processors:
从batch来看,timeout: 5s # 攒批超时减少网络开销
memory_limiter:
limit_mib: 512 # 防止数据堆积导致 OOM
exporters:
promeus:
endpoint: "0.0.0.0:9464" # 暴露给 Promeus 抓取
otlp/jaeger:
endpoint: "http://jaeger:14250"
tls的观点是。insecure: true # 内网不需要 TLS
service:
pipelines:
metrics:
receivers:
exporters:
至于traces,receivers:
exporters:
关键点:
PROMETHEUS 使用 pull 模式定时去 OTel Collector 拉取指标。
global:
scrape_interval: 15s
scrape_configs:
- job_name: "otel-collector"
static_configs:
- targets: # Collector 的 Promeus exporter 地址
启动参数示例:
promeus.exe --config.file=promeus.yml --storage.tsdb.retention.time=30d
# retention.time=30d 表示保留30天的数据,会自动清理旧数据。按理说,
Jaeger 用于存储和查询 traces,可以看到每次请求的完整调用链。
receivers:
从otlp来看,protocols:
至于grpc,endpoint: "0.0.0.0:4317"
exporters:
jaeger_storage_exporter:
extensions:
jaeger_query:
service:
pipelines:
从traces来看。receivers:
exporters:
extensions:
storage:
trace_storage_type: memory # 简化演示,可换为 Elasticsearch 等持久化方案
S踩坑提醒:Straces pipeline 必须包含 `jaeger_storage_exporter`,否则 Jaeger UI 中 Service 列表为空,这是最常见的问题。说起来,
Kibana 已经负责日志展示。这里只需要把 Promeus 与 Jaeger 加入 Grafana 即可。
Data‑source 配置示例:
datasources:
- name: Promeus
至于type,promeus
url : http://localhost:${PROMETHEUS_PORT}
isDefault : true
- name : Jaeger
type : jaeger
url : http://localhost:${JAEGER_QUERY_PORT}
Deployment order :
. Jaeger ← 必须先启动
. OpenTelemetry Collector ← 接收应用数据
. Promeus ← 抓取指标
. Grafana ← 可视化展示
.NET 项目里只需要做一件事:#通过 OTel SDK 把数据推给 OTel Collector#”。后端组件全部由 Collector 转发,无需业务代码感知。
N uGet 包:
服务注册 :
private static void ConfigureOpenTelemetry
{
string otlpEndpoint = builder.Configuration
从"http来看,//localhost:{OTLP_PORT}";// Tracing -------------------------------------------------
builder.Services.AddOpenTelemetry
.WithTracing(tracing =>
{
tracing.AddAspNetCoreInstrumentation // 自动采集 HTTP 请求 trace
.AddSource // 自定义 Span 前缀,可按需添加
.ConfigureResource)
.AddOtlpExporter(opts =>
{
opts.Endpoint = new Uri;opts.ExportProcessorType = ExportProcessorType.Batch;}),})
// Metrics -------------------------------------------------
.WithMetrics(metrics =>
{
metrics.AddAspNetCoreInstrumentation // 自动采集 HTTP 请求指标
.AddRuntimeInstrumentation // .NET Runtime 指标
.ConfigureResource)
.AddOtlpExporter);}),}
采集信息类别 :
| 类别 | 指标 | 说明 |
|---|---|---|
| HTTP 请求 | QPS 、 延迟分布 、 状态码 | Instrumentation.AspNetCore 自动采集 HttpServerRequest* 系列 metric HttpServerRequestDuration* histogram HttpServerResponseStatusCode* counter / td> |
| .NET Runtime | dotnetgc*。dotnetprocesscputimesecondstotal,dotnetthreadpool_* ... / td> | \ n Instrumentation.Runtime 自动采集 \ n
<\/tbody>
<\/table>
|
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback