576.md 56.2 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723
# Usage Ping Guide

> 原文:[https://docs.gitlab.com/ee/development/telemetry/usage_ping.html](https://docs.gitlab.com/ee/development/telemetry/usage_ping.html)

*   [What is Usage Ping?](#what-is-usage-ping)
    *   [Why should we enable Usage Ping?](#why-should-we-enable-usage-ping)
    *   [Limitations](#limitations)
*   [Usage Ping payload](#usage-ping-payload)
*   [Disable Usage Ping](#disable-usage-ping)
*   [Usage Ping request flow](#usage-ping-request-flow)
*   [How Usage Ping works](#how-usage-ping-works)
*   [Implementing Usage Ping](#implementing-usage-ping)
    *   [Why batch counting](#why-batch-counting)
    *   [Ordinary Batch Counters](#ordinary-batch-counters)
    *   [Distinct Batch Counters](#distinct-batch-counters)
    *   [Redis Counters](#redis-counters)
    *   [Alternative Counters](#alternative-counters)
    *   [Prometheus Queries](#prometheus-queries)
*   [Developing and testing Usage Ping](#developing-and-testing-usage-ping)
    *   [1\. Use your Rails console to manually test counters](#1-use-your-rails-console-to-manually-test-counters)
    *   [2\. Generate the SQL query](#2-generate-the-sql-query)
    *   [3\. Optimize queries with #database-lab](#3-optimize-queries-with-database-lab)
    *   [4\. Add the metric definition](#4-add-the-metric-definition)
    *   [5\. Add new metric to Versions Application](#5-add-new-metric-to-versions-application)
    *   [6\. Add the feature label](#6-add-the-feature-label)
    *   [7\. Add a changelog file](#7-add-a-changelog-file)
    *   [8\. Ask for a Telemetry Review](#8-ask-for-a-telemetry-review)
    *   [Optional: Test Prometheus based Usage Ping](#optional-test-prometheus-based-usage-ping)
        *   [Test with an Omnibus container](#test-with-an-omnibus-container)
        *   [Test with GitLab development toolkits](#test-with-gitlab-development-toolkits)
*   [Usage Statistics definitions](#usage-statistics-definitions)
*   [Example Usage Ping payload](#example-usage-ping-payload)

# Usage Ping Guide[](#usage-ping-guide "Permalink")

版本历史

*   在 GitLab 企业版 8.10 中引入.
*   在 GitLab 企业版 8.12 中添加了更多统计信息.
*   在 9.1 中移至 GitLab Core.
*   在 GitLab Ultimate 11.2 中添加了更多统计信息.

本指南介绍了用法 Ping 的用途及其实现方式.

有关遥测的更多信息,请参见:

*   [Telemetry Guide](index.html)
*   [Snowplow Guide](snowplow.html)

更有用的链接:

*   [Telemetry Direction](https://about.gitlab.com/direction/telemetry/)
*   [Data Analysis Process](https://about.gitlab.com/handbook/business-ops/data-team/#data-analysis-process/)
*   [Data for Product Managers](https://about.gitlab.com/handbook/business-ops/data-team/programs/data-for-product-managers/)
*   [Data Infrastructure](https://about.gitlab.com/handbook/business-ops/data-team/platform/infrastructure/)

## What is Usage Ping?[](#what-is-usage-ping "Permalink")

*   GitLab 每周将包含使用情况数据的有效负载发送到 GitLabInc.用法 Ping 提供高级数据来帮助我们的产品,支持和销售团队. 它不发送任何项目名称,用户名或任何其他特定数据. 使用 ping 中的信息不是匿名的,它链接到实例的主机名. 发送使用情况 ping 是可选的,任何实例都可以禁用分析.
*   使用情况数据主要由实例数据库中不同表的行计数组成. 通过逐月比较这些计数(或逐周比较),我们可以大致了解实例如何使用产品中的不同功能. 除计数外,还收集了其他有助于我们分类和了解 GitLab 安装的事实.
*   使用 ping 对 GitLab 很重要,因为我们使用它来计算阶段每月活跃用户(SMAU),这有助于我们衡量阶段和功能的成功程度.
*   启用使用情况 ping 后,GitLab 将从其他实例收集数据,并能够向用户显示您实例的使用情况统计信息.

### Why should we enable Usage Ping?[](#why-should-we-enable-usage-ping "Permalink")

*   使用 Ping 的主要目的是构建更好的 GitLab. 收集有关如何使用 GitLab 的数据,以更好地了解功能/阶段的采用和使用情况,这有助于我们了解 GitLab 如何增加价值,并帮助我们的团队更好地了解人们使用 GitLab 的原因,并且借助这些知识,我们可以做得更好产品决策.
*   作为激活使用 ping 的一项好处,GitLab 可让您分析 GitLab 安装过程中用户的活动.
*   作为激活使用 ping 的一项好处,GitLab 为您提供了 DevOps 得分,它为您提供了从计划到监视整个实例对并发 DevOps 的采用情况的概述.
*   您将获得更好,更主动的支持. (假设我们的 TAM 和支持组织使用这些数据来提供更多价值)
*   您将获得有关如何从 GitLab 的投资中获得最大价值的见识和建议. 您是否不想知道组织中未采用许多功能或价值?
*   您将获得一份报告,说明如何与其他类似组织(匿名)进行比较,并提供有关如何改进 DevOps 流程的具体建议和建议.
*   默认情况下启用用法 Ping. 要禁用它,请参阅[禁用用法 Ping](#disable-usage-ping) .

### Limitations[](#limitations "Permalink")

*   Usage Ping does not track frontend events things like page views, link clicks, or user sessions, and only focuses on aggregated backend events.
*   由于这些限制,我们建议使用 Snowplow 来对您的产品进行检测,以在 GitLab.com 上进行更详细的分析,并使用 Usage Ping 跟踪自我管理中的汇总后端事件.

## Usage Ping payload[](#usage-ping-payload "Permalink")

您可以在管理面板中查看发送到 GitLab Inc.的确切 JSON 有效负载. 要查看有效负载:

1.  导航到" **管理区域">"设置">"度量标准和性能分析"** .
2.  展开**使用情况统计信息**部分.
3.  单击**预览有效负载**按钮.

有关有效负载的示例,请参阅[示例用法 Ping 有效负载](#example-usage-ping-payload) .

## Disable Usage Ping[](#disable-usage-ping "Permalink")

要在 GitLab UI 中禁用"使用情况 Ping",请转到管理面板的**"设置"**页面,然后取消选中" **使用情况 Ping"**复选框.

要禁用用法 Ping 并防止日后通过管理面板对其进行配置,Omnibus 安装可以在[`gitlab.rb`](https://docs.gitlab.com/omnibus/settings/configuration.html)设置以下[`gitlab.rb`](https://docs.gitlab.com/omnibus/settings/configuration.html)

```
gitlab_rails['usage_ping_enabled'] = false 
```

源代码安装可以在`gitlab.yml`设置以下`gitlab.yml`

```
production: &base
  # ...
  gitlab:
    # ...
    usage_ping_enabled: false 
```

## Usage Ping request flow[](#usage-ping-request-flow "Permalink")

The following example shows a basic request/response flow between a GitLab instance, the Versions Application, the License Application, Salesforce, GitLab’s S3 Bucket, GitLab’s Snowflake Data Warehouse, and Sisense:

sequenceDiagram 参与者 GitLab 实例参与者版本应用程序参与者许可证应用程序参与者 Salesforce 参与者 S3 存储桶参与者 Snowflake DW 参与者 Sisense 仪表板 GitLab 实例->>版本应用程序:发送使用情况 ping 循环流程使用情况数据版本应用程序->>版本应用程序:解析使用情况数据版本应用程序- >>版本应用程序:写入数据库版本应用程序->>版本应用程序:更新许可证 ping 超时循环 Salesforce 版本的过程数据 Application-xLicenses 应用程序:请求 Zuora 订阅 ID 许可证 Application-xVersions 应用程序:Zuora 订阅 ID 版本 Application-xSalesforce:通过 Zuora 订阅 ID 请求 Zuora 帐户 ID Salesforce-xVersions 应用程序:Zuora 帐户 ID 版本 Application-xSalesforce:Zuora 帐户最终版本的使用数据 Application->> S3 存储桶:导出版本数据库 S3 存储桶->>雪花 DW:导入数据 Snowflake DW->>雪花 DW:Trans 使用 dbt Snowflake DW->> Sisense 仪表板的表单数据:可用于查询版本 Application->> GitLab 实例的数据:DevOps 得分(会话开发索引)

## How Usage Ping works[](#how-usage-ping-works "Permalink")

1.  在 Sidekiq 中将 Usage Ping [cron 作业](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/workers/gitlab_usage_ping_worker.rb#L30)设置为每周运行.
2.  当 cron 作业运行时,它将调用[`GitLab::UsageData.to_json`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/services/submit_usage_ping_service.rb#L22) .
3.  `GitLab::UsageData.to_json` [级联](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/usage_data.rb#L22)`GitLab::UsageData.to_json` +其他计数器方法调用.
4.  所有方法调用的响应都在`GitLab::UsageData.to_json`[合并](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/usage_data.rb#L14)为一个 JSON 负载.
5.  然后将 JSON 有效负载[发布到 Versions 应用程序](https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/services/submit_usage_ping_service.rb#L20) .

## Implementing Usage Ping[](#implementing-usage-ping "Permalink")

Usage Ping consists of two kinds of data, counters and observations. Counters track how often a certain event happened over time, such as how many CI pipelines have run. They are monotonic and always trend up. Observations are facts collected from one or more GitLab instances and can carry arbitrary data. There are no general guidelines around how to collect those, due to the individual nature of that data.

`usage_data.rb`中可以找到四种类型的计数器:

*   **普通批处理计数器:**给定 ActiveRecord_Relation 的简单计数
*   **不同的批次计数器:**给定列上给定 ActiveRecord_Relation 的不同计数
*   **备用计数器:**用于设置和配置
*   **Redis 计数器:**用于内存中计数. 由于数据不正确,此方法已被弃用,并将由持久性方法代替.

**注意:**仅使用提供的计数器方法. 每个计数器方法都包含一个内置的故障保险柜,用于隔离每个计数器,以避免破坏整个使用情况 Ping.

### Why batch counting[](#why-batch-counting "Permalink")

对于大型表,由于 MVCC [(多版本并发控制)](https://en.wikipedia.org/wiki/Multiversion_concurrency_control) ,PostgreSQL 可能需要很长时间才能对行进行计数. 批计数是一种将单个大型查询分解为多个较小查询的计数方法. 例如,您可以执行 100 个每个 10,000 条记录的查询,而不是一个查询 1,000,000 条记录并进行批处理的查询. 批计数对于避免数据库超时很有用,因为每个批查询都比一个长期运行的查询短得多.

对于 GitLab.com,有非常大的表具有 15 秒的查询超时,因此我们使用批计数来避免遇到超时. 以下是一些 GitLab.com 表的大小:

| Table | 行数百万 |
| --- | --- |
| `merge_request_diff_commits` | 2280 |
| `ci_build_trace_sections` | 1764 |
| `merge_request_diff_files` | 1082 |
| `events` | 514 |

提供了两种批处理计数方法:" `Ordinary Batch Counters`和" `Distinct Batch Counters` . 批计数需要列上的索引来计算最大值,最小值和范围查询. 在某些情况下,可能需要在计数器涉及的列上添加专门的索引.

### Ordinary Batch Counters[](#ordinary-batch-counters "Permalink")

Handles `ActiveRecord::StatementInvalid` error

给定 ActiveRecord_Relation 的简单计数

Method: `count(relation, column = nil, batch: true, start: nil, finish: nil)`

Arguments:

*   `relation` ActiveRecord_Relation 以执行计数
*   `column`要执行计数的列,默认情况下是主键
*   `batch` :默认为`true`以便使用批次计数
*   `start` :批处理计数的自定义开始,以避免复杂的最小值计算
*   `end` :批处理计数的自定义结束,以避免复杂的最小值计算

Examples:

```
count(User.active)
count(::Clusters::Cluster.aws_installed.enabled, :cluster_id)
count(::Clusters::Cluster.aws_installed.enabled, :cluster_id, start: ::Clusters::Cluster.minimum(:id), finish: ::Clusters::Cluster.maximum(:id)) 
```

### Distinct Batch Counters[](#distinct-batch-counters "Permalink")

Handles `ActiveRecord::StatementInvalid` error

给定列上给定 ActiveRecord_Relation 的不重复计数

Method: `distinct_count(relation, column = nil, batch: true, start: nil, finish: nil)`

Arguments:

*   `relation` ActiveRecord_Relation 以执行计数
*   `column`该列执行非重复计数,默认情况下是主键
*   `batch` :默认为`true`以便使用批次计数
*   `start` :批处理计数的自定义开始,以避免复杂的最小值计算
*   `end` :批处理计数的自定义结束,以避免复杂的最小值计算

Examples:

```
distinct_count(::Project, :creator_id)
distinct_count(::Note.with_suggestions.where(time_period), :author_id, start: ::User.minimum(:id), finish: ::User.maximum(:id))
distinct_count(::Clusters::Applications::CertManager.where(time_period).available.joins(:cluster), 'clusters.user_id') 
```

### Redis Counters[](#redis-counters "Permalink")

当发送一个块时,句柄`::Redis::CommandError``Gitlab::UsageDataCounters::BaseCounter::UnknownEvent`返回-1,或者在向`counter(Gitlab::UsageDataCounters)`发送不同行为时由于所有 2 个不同而返回具有所有值-1 的哈希 Redis 计数器的实现

Method: `redis_usage_data(counter, &block)`

Arguments:

*   `counter` :来自`Gitlab::UsageDataCounters`的计数器,该计数器已实现`fallback_totals`方法
*`block` :被评估

用法示例:

```
redis_usage_data(Gitlab::UsageDataCounters::WikiPageCounter)
redis_usage_data { ::Gitlab::UsageCounters::PodLogs.usage_totals[:total] } 
```

请注意,Redis 计数器正在[被弃用](https://gitlab.com/gitlab-org/gitlab/-/issues/216330) ,您应该改为尝试使用 Snowplow 事件. 我们正在构建[自我管理的事件跟踪](https://gitlab.com/gitlab-org/telemetry/-/issues/373) ,一旦可用,我们会将所有 Redis 计数器转换为 Snowplow 事件.

### Alternative Counters[](#alternative-counters "Permalink")

以这种方式处理`StandardError`并将后备值处理为-1,如果遇到一个异常,并非所有度量都会失败. 主要用于设置和配置.

Method: `alt_usage_data(value = nil, fallback: -1, &block)`

Arguments:

*   `value` :一个简单的静态值,在这种情况下,仅返回该值.
*`block` :被评估
*   `fallback: -1` :用于失败的任何度量的通用值.

用法示例:

```
alt_usage_data { Gitlab::VERSION }
alt_usage_data { Gitlab::CurrentSettings.uuid }
alt_usage_data(999) 
```

### Prometheus Queries[](#prometheus-queries "Permalink")

在那些操作指标应成为 Usage Ping 一部分的情况下,数据库或 Redis 查询不太可能提供有用的数据. 取而代之的是,Prometheus 可能更合适,因为大多数 GitLab 的体系结构组件都会向其发布指标,这些指标可以查询,汇总并作为使用数据包含在内.

**注意:** Prometheus 作为 Usage Ping 的数据源目前仅适用于运行[捆绑的 Prometheus](../../administration/monitoring/prometheus/index.html)实例的单节点 Omnibus 安装.

为了查询 Prometheus 的度量标准,可以使用一个助手方法,该方法将`yield`一个完整配置的`PrometheusClient` ,前提是可以按照上述说明使用它:

```
with_prometheus_client do |client|
  response = client.query('<your query>')
  ...
end 
```

请参阅[`PrometheusClient`定义,](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/prometheus_client.rb)以了解如何使用其 API 查询数据.

## Developing and testing Usage Ping[](#developing-and-testing-usage-ping "Permalink")

### 1\. Use your Rails console to manually test counters[](#1-use-your-rails-console-to-manually-test-counters "Permalink")

```
# count
Gitlab::UsageData.count(User.active)
Gitlab::UsageData.count(::Clusters::Cluster.aws_installed.enabled, :cluster_id)

# count distinct
Gitlab::UsageData.distinct_count(::Project, :creator_id)
Gitlab::UsageData.distinct_count(::Note.with_suggestions.where(time_period), :author_id, start: ::User.minimum(:id), finish: ::User.maximum(:id)) 
```

### 2\. Generate the SQL query[](#2-generate-the-sql-query "Permalink")

您的 Rails 控制台将返回生成的 SQL 查询.

Example:

```
pry(main)> Gitlab::UsageData.count(User.active)
   (2.6ms)  SELECT "features"."key" FROM "features"
   (15.3ms)  SELECT MIN("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4))
   (2.4ms)  SELECT MAX("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4))
   (1.9ms)  SELECT COUNT("users"."id") FROM "users" WHERE ("users"."state" IN ('active')) AND ("users"."user_type" IS NULL OR "users"."user_type" IN (6, 4)) AND "users"."id" BETWEEN 1 AND 100000 
```

### 3\. Optimize queries with #database-lab[](#3-optimize-queries-with-database-lab "Permalink")

将 SQL 查询粘贴到`#database-lab`以查看查询的大规模执行情况.

*   `#database-lab` is a Slack channel which uses a production-sized environment to test your queries.
*   GitLab.com 的生产数据库有 15 秒的超时.
*   任何单个查询的冷缓存都必须保持在 1 秒以下的执行时间.
*   在涉及的列上添加专门的索引,以减少执行时间.

为了了解查询的执行情况,我们在 MR 描述中添加了以下信息:

*   对于具有`time_period`测试的计数器,我们添加了两种情况的信息:
    *   所有时间段的`time_period = {}`
    *   `time_period = { created_at: 28.days.ago..Time.current }`最近 28 天的时间段
*   优化前后的执行计划和查询时间
*   查询生成的索引和时间
*   上下执行的迁移输出

我们还使用`#database-lab`[explain.depesz.com](https://explain.depesz.com/) . 有关更多详细信息,请参见[数据库查看指南](../database_review.html#preparation-when-adding-or-modifying-queries) .

查询优化工作的示例:

*   [Example 1](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26445)
*   [Example 2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/26871)

### 4\. Add the metric definition[](#4-add-the-metric-definition "Permalink")

添加,更改或更新指标时,请更新[使用情况统计信息定义表](#usage-statistics-definitions) .

### 5\. Add new metric to Versions Application[](#5-add-new-metric-to-versions-application "Permalink")

检查是否需要将新指标添加到"版本应用程序". 请参见`usage_data` [模式](https://gitlab.com/gitlab-services/version-gitlab-com/-/blob/master/db/schema.rb#L147)和已[接受的](https://gitlab.com/gitlab-services/version-gitlab-com/-/blob/master/app/services/usage_ping.rb)用法数据[参数](https://gitlab.com/gitlab-services/version-gitlab-com/-/blob/master/app/services/usage_ping.rb) . 在`counts`键下添加的所有度量标准都保存在`counts`列中.

有关更多详细信息,请参见[将其他工具添加到"用法" Ping 的过程](https://about.gitlab.com/handbook/product/product-processes/#process-to-add-additional-instrumentation-to-the-usage-ping) .

### 6\. Add the feature label[](#6-add-the-feature-label "Permalink")

`feature`标签添加到"合并请求"以获取新的"用法 Ping"度量. 这些是面向用户的更改,并且是扩展"用法" Ping 功能的一部分.

### 7\. Add a changelog file[](#7-add-a-changelog-file "Permalink")

确保您遵守[Changelog 条目指南](../changelog.html) .

### 8\. Ask for a Telemetry Review[](#8-ask-for-a-telemetry-review "Permalink")

在 GitLab.com 上,我们具有 DangerBot 设置来监视遥测相关文件,并且 DangerBot 将建议进行遥测. 在您的 MR 中提及`@gitlab-org/growth/telemetry/engineers`以进行审核.

### Optional: Test Prometheus based Usage Ping[](#optional-test-prometheus-based-usage-ping "Permalink")

如果提交的数据包含您要检查和验证的[从 Prometheus 查询的](#prometheus-queries)指标,则需要确保 Prometheus 服务器在本地运行,并且相应的 GitLab 组件正在向其导出指标. 如果您不需要测试来自 Prometheus 的数据,则无需采取任何进一步的措施,因为在没有运行 Prometheus 服务器的情况下,Using Ping 应该会正常降低性能.

当前,存在三种可以将数据导出到 Prometheus 的组件,这些组件包括在 Useing Ping 中:

*   [`node_exporter`](https://github.com/prometheus/node_exporter)从主机导出节点指标
*   [`gitlab-exporter`](https://gitlab.com/gitlab-org/gitlab-exporter)从各种 GitLab 组件导出过程指标
*   各种 GitLab 服务(例如 Sidekiq 和 Rails 服务器)可导出自己的指标

#### Test with an Omnibus container[](#test-with-an-omnibus-container "Permalink")

这是测试基于 Prometheus 的用法 Ping 的推荐方法.

验证更改的最简单方法是通过 CI 从代码分支构建新的 Omnibus 映像,然后下载该映像并运行本地容器实例:

1.  在合并请求中,单击`qa`阶段,然后触发`package-and-qa`作业. 这项工作将触发[`omnibus-gitlab-mirror`项目](https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/-/pipelines)[下游管道中的](https://gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/-/pipelines) Omnibus 构建.
2.  在下游管道中,等待`gitlab-docker`作业完成.
3.  打开作业日志,然后找到完整的容器名称(包括版本). 它将采用以下形式: `registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:<VERSION>` .
4.  在本地计算机上,确保您已登录到 GitLab Docker 注册表. 您可以在[向 GitLab 容器注册表](../../user/packages/container_registry/index.html#authenticating-to-the-gitlab-container-registry)进行[身份验证中](../../user/packages/container_registry/index.html#authenticating-to-the-gitlab-container-registry)找到有关此操作的说明.
5.  登录后,通过`docker pull registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:<VERSION>`下载新映像`docker pull registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:<VERSION>`
6.  有关在 Docker 中使用和运行 Omnibus GitLab 容器的更多信息,请参阅 Omnibus 文档中的[GitLab Docker 映像](https://docs.gitlab.com/omnibus/docker/README.html) .

#### Test with GitLab development toolkits[](#test-with-gitlab-development-toolkits "Permalink")

这是不建议使用的方法,因为在模拟实际的 GitLab 部署时会遇到很多困难.

当前未将[GDK](https://gitlab.com/gitlab-org/gitlab-development-kit)设置为与其他 GitLab 组件一起运行 Prometheus 服务器或`node_exporter` . 如果您愿意,可以[使用 Prometheus 监控 GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/master/doc/howto/prometheus/index.md#monitoring-the-gdk-with-prometheus) .

[GCK](https://gitlab.com/gitlab-org/gitlab-compose-kit)对测试基于 Prometheus 的 Useing Ping 的支持有限. 默认情况下,它已经带有完整配置的 Prometheus 服务,该服务设置为可刮除许多组件,但具有以下限制:

*   它当前未运行`gitlab-exporter`实例,因此可能缺少诸如 Gitaly 之类的服务中的多个`process_*`指标.
*   当它运行`node_exporter``node_exporter` `docker-compose`服务会模拟主机,这意味着它通常会报告自身不与正在运行的任何其他服务关联. 这不是在生产设置中报告节点度量的方式,在生产设置中, `node_exporter`始终作为进程与任何给定节点上的其他 GitLab 组件一起运行. 从用法 Ping 的角度来看,没有节点数据因此似乎与任何正在运行的服务相关联,因为它们似乎都在不同的主机上运行. 为了缓解此问题, `node_exporter` GCK 中的`node_exporter`任意"分配"给了`web`服务,这意味着仅针对该服务的`node_*`指标将出现在"用法" Ping 中.

## Usage Statistics definitions[](#usage-statistics-definitions "Permalink")

| Statistic | Section | Stage | Tier | Edition | Description |
| --- | --- | --- | --- | --- | --- |
| `uuid` |   |   |   |   |   |
| `hostname` |   |   |   |   |   |
| `version` |   |   |   |   |   |
| `installation_type` |   |   |   |   |   |
| `active_user_count` |   |   |   |   |   |
| `recorded_at` |   |   |   |   |   |
| `recording_ce_finished_at` |   |   |   | CE+EE | 计算核心特征时 |
| `recording_ee_finished_at` |   |   |   | EE | 计算 EE 特定功能时 |
| `edition` |   |   |   |   |   |
| `license_md5` |   |   |   |   |   |
| `license_id` |   |   |   |   |   |
| `historical_max_users` |   |   |   |   |   |
| `Name` | `licensee` |   |   |   |   |
| `Email` | `licensee` |   |   |   |   |
| `Company` | `licensee` |   |   |   |   |
| `license_user_count` |   |   |   |   |   |
| `license_starts_at` |   |   |   |   |   |
| `license_expires_at` |   |   |   |   |   |
| `license_plan` |   |   |   |   |   |
| `license_trial` |   |   |   |   |   |
| `assignee_lists` | `counts` |   |   |   |   |
| `boards` | `counts` |   |   |   |   |
| `ci_builds` | `counts` | `verify` |   |   | 项目中独特的构建 |
| `ci_internal_pipelines` | `counts` | `verify` |   |   | GitLab 存储库中的管道总数 |
| `ci_external_pipelines` | `counts` | `verify` |   |   | 外部存储库中的总管道 |
| `ci_pipeline_config_auto_devops` | `counts` | `verify` |   |   | Auto DevOps 模板中的管道总数 |
| `ci_pipeline_config_repository` | `counts` | `verify` |   |   | 来自存储库中模板的管道总数 |
| `ci_runners` | `counts` | `verify` |   |   | 项目中已配置的跑步者总数 |
| `ci_triggers` | `counts` | `verify` |   |   | 项目中已配置的触发器总数 |
| `ci_pipeline_schedules` | `counts` | `verify` |   |   | GitLab 中的管道时间表 |
| `auto_devops_enabled` | `counts` | `configure` |   |   | 启用了 Auto DevOps 模板的项目 |
| `auto_devops_disabled` | `counts` | `configure` |   |   | 禁用了 Auto DevOps 模板的项目 |
| `deploy_keys` | `counts` |   |   |   |   |
| `deployments` | `counts` | `release` |   |   | 总部署 |
| `deployments` | `counts_monthly` | `release` |   |   | 最近 28 天的部署总数 |
| `dast_jobs` | `counts` |   |   |   |   |
| `successful_deployments` | `counts` | `release` |   |   | 成功部署总数 |
| `successful_deployments` | `counts_monthly` | `release` |   |   | 最近 28 天成功部署的总数 |
| `failed_deployments` | `counts` | `release` |   |   | 失败的部署总数 |
| `failed_deployments` | `counts_monthly` | `release` |   |   | 最近 28 天失败的部署总数 |
| `environments` | `counts` | `release` |   |   | 可用和停止的环境总数 |
| `clusters` | `counts` | `configure` |   |   | 启用和禁用的 GitLab 托管群集总数 |
| `clusters_enabled` | `counts` | `configure` |   |   | 当前启用的 GitLab 托管群集总数 |
| `project_clusters_enabled` | `counts` | `configure` |   |   | 附加到项目的 GitLab 托管集群总数 |
| `group_clusters_enabled` | `counts` | `configure` |   |   | 附加到组的 GitLab 托管集群总数 |
| `instance_clusters_enabled` | `counts` | `configure` |   |   | 附加到实例的 GitLab 托管群集总数 |
| `clusters_disabled` | `counts` | `configure` |   |   | GitLab 托管的禁用集群总数 |
| `project_clusters_disabled` | `counts` | `configure` |   |   | 以前附加到项目的 GitLab 托管的禁用集群总数 |
| `group_clusters_disabled` | `counts` | `configure` |   |   | 以前附加到组的 GitLab 托管的禁用集群总数 |
| `instance_clusters_disabled` | `counts` | `configure` |   |   | 先前附加到实例的 GitLab 托管的禁用集群总数 |
| `clusters_platforms_eks` | `counts` | `configure` |   |   | 在 AWS EKS 上通过 GitLab 设置的 GitLab 托管群集总数 |
| `clusters_platforms_gke` | `counts` | `configure` |   |   | 在 GCE GKE 上通过 GitLab 设置的 GitLab 托管群集总数 |
| `clusters_platforms_user` | `counts` | `configure` |   |   | 用户配置的 GitLab 托管群集总数 |
| `clusters_applications_helm` | `counts` | `configure` |   |   | 启用 Helm 的 GitLab 托管群集总数 |
| `clusters_applications_ingress` | `counts` | `configure` |   |   | 启用了 Ingress 的 GitLab 托管群集总数 |
| `clusters_applications_cert_managers` | `counts` | `configure` |   |   | 启用了 Cert Manager 的 GitLab 托管群集总数 |
| `clusters_applications_crossplane` | `counts` | `configure` |   |   | 启用了 Crossplane 的 GitLab 托管群集总数 |
| `clusters_applications_prometheus` | `counts` | `configure` |   |   | 启用 Prometheus 的 GitLab 托管群集总数 |
| `clusters_applications_runner` | `counts` | `configure` |   |   | 启用 Runner 的 GitLab 托管群集总数 |
| `clusters_applications_knative` | `counts` | `configure` |   |   | 启用了 Knative 的 GitLab 托管群集总数 |
| `clusters_applications_elastic_stack` | `counts` | `configure` |   |   | 启用了 Elastic Stack 的 GitLab 托管集群总数 |
| `clusters_applications_cilium` | `counts` | `configure` |   |   | 启用 Cilium 的 GitLab 托管群集总数 |
| `clusters_management_project` | `counts` | `configure` |   |   | 定义了集群管理项目的 GitLab 托管集群总数 |
| `in_review_folder` | `counts` |   |   |   |   |
| `grafana_integrated_projects` | `counts` |   |   |   |   |
| `groups` | `counts` |   |   |   |   |
| `issues` | `counts` |   |   |   |   |
| `issues_created_from_gitlab_error_tracking_ui` | `counts` | `monitor` |   |   |   |
| `issues_with_associated_zoom_link` | `counts` | `monitor` |   |   |   |
| `issues_using_zoom_quick_actions` | `counts` | `monitor` |   |   |   |
| `issues_with_embedded_grafana_charts_approx` | `counts` | `monitor` |   |   |   |
| `issues_with_health_status` | `counts` |   |   |   |   |
| `keys` | `counts` |   |   |   |   |
| `label_lists` | `counts` |   |   |   |   |
| `lfs_objects` | `counts` |   |   |   |   |
| `milestone_lists` | `counts` |   |   |   |   |
| `milestones` | `counts` |   |   |   |   |
| `pages_domains` | `counts` | `release` |   |   | GitLab 页面总数 |
| `pool_repositories` | `counts` |   |   |   |   |
| `projects` | `counts` |   |   |   |   |
| `projects_imported_from_github` | `counts` |   |   |   |   |
| `projects_with_repositories_enabled` | `counts` |   |   |   |   |
| `projects_with_error_tracking_enabled` | `counts` | `monitor` |   |   |   |
| `protected_branches` | `counts` |   |   |   |   |
| `releases` | `counts` | `release` |   |   | 独特的发行标签 |
| `remote_mirrors` | `counts` |   |   |   |   |
| `requirements_created` | `counts` |   |   |   |   |
| `snippets` | `counts` | ‘create’ |   | CE+EE |   |
| `snippets` | `counts_monthly` | ‘create’ |   | CE+EE |   |
| `personal_snippets` | `counts` | ‘create’ |   | CE+EE |   |
| `personal_snippets` | `counts_monthly` | ‘create’ |   | CE+EE |   |
| `project_snippets` | `counts` | ‘create’ |   | CE+EE |   |
| `project_snippets` | `counts_monthly` | ‘create’ |   | CE+EE |   |
| `suggestions` | `counts` |   |   |   |   |
| `todos` | `counts` |   |   |   |   |
| `uploads` | `counts` |   |   |   |   |
| `web_hooks` | `counts` |   |   |   |   |
| `projects_alerts_active` | `counts` |   |   |   |   |
| `projects_asana_active` | `counts` |   |   |   |   |
| `projects_assembla_active` | `counts` |   |   |   |   |
| `projects_bamboo_active` | `counts` |   |   |   |   |
| `projects_bugzilla_active` | `counts` |   |   |   |   |
| `projects_buildkite_active` | `counts` |   |   |   |   |
| `projects_campfire_active` | `counts` |   |   |   |   |
| `projects_custom_issue_tracker_active` | `counts` |   |   |   |   |
| `projects_discord_active` | `counts` |   |   |   |   |
| `projects_drone_ci_active` | `counts` |   |   |   |   |
| `projects_emails_on_push_active` | `counts` |   |   |   |   |
| `projects_external_wiki_active` | `counts` |   |   |   |   |
| `projects_flowdock_active` | `counts` |   |   |   |   |
| `projects_github_active` | `counts` |   |   |   |   |
| `projects_hangouts_chat_active` | `counts` |   |   |   |   |
| `projects_hipchat_active` | `counts` |   |   |   |   |
| `projects_irker_active` | `counts` |   |   |   |   |
| `projects_jenkins_active` | `counts` |   |   |   |   |
| `projects_jira_active` | `counts` |   |   |   |   |
| `projects_mattermost_active` | `counts` |   |   |   |   |
| `projects_mattermost_slash_commands_active` | `counts` |   |   |   |   |
| `projects_microsoft_teams_active` | `counts` |   |   |   |   |
| `projects_packagist_active` | `counts` |   |   |   |   |
| `projects_pipelines_email_active` | `counts` |   |   |   |   |
| `projects_pivotaltracker_active` | `counts` |   |   |   |   |
| `projects_prometheus_active` | `counts` |   |   |   |   |
| `projects_pushover_active` | `counts` |   |   |   |   |
| `projects_redmine_active` | `counts` |   |   |   |   |
| `projects_slack_active` | `counts` |   |   |   |   |
| `projects_slack_slash_commands_active` | `counts` |   |   |   |   |
| `projects_teamcity_active` | `counts` |   |   |   |   |
| `projects_unify_circuit_active` | `counts` |   |   |   |   |
| `projects_webex_teams_active` | `counts` |   |   |   |   |
| `projects_youtrack_active` | `counts` |   |   |   |   |
| `projects_jira_server_active` | `counts` |   |   |   |   |
| `projects_jira_cloud_active` | `counts` |   |   |   |   |
| `projects_jira_dvcs_cloud_active` | `counts` |   |   |   |   |
| `projects_jira_dvcs_server_active` | `counts` |   |   |   |   |
| `projects_jira_issuelist_active` | `counts` | `create` |   | EE | 总的 Jira Issue 功能已启用 |
| `labels` | `counts` |   |   |   |   |
| `merge_requests` | `counts` |   |   |   |   |
| `merge_requests_users` | `counts` |   |   |   |   |
| `notes` | `counts` |   |   |   |   |
| `wiki_pages_create` | `counts` |   |   |   |   |
| `wiki_pages_update` | `counts` |   |   |   |   |
| `wiki_pages_delete` | `counts` |   |   |   |   |
| `web_ide_commits` | `counts` |   |   |   |   |
| `web_ide_views` | `counts` |   |   |   |   |
| `web_ide_merge_requests` | `counts` |   |   |   |   |
| `web_ide_previews` | `counts` |   |   |   |   |
| `snippet_comment` | `counts` |   |   |   |   |
| `commit_comment` | `counts` |   |   |   |   |
| `merge_request_comment` | `counts` |   |   |   |   |
| `snippet_create` | `counts` |   |   |   |   |
| `snippet_update` | `counts` |   |   |   |   |
| `navbar_searches` | `counts` |   |   |   |   |
| `cycle_analytics_views` | `counts` |   |   |   |   |
| `productivity_analytics_views` | `counts` |   |   |   |   |
| `source_code_pushes` | `counts` |   |   |   |   |
| `merge_request_create` | `counts` |   |   |   |   |
| `design_management_designs_create` | `counts` |   |   |   |   |
| `design_management_designs_update` | `counts` |   |   |   |   |
| `design_management_designs_delete` | `counts` |   |   |   |   |
| `licenses_list_views` | `counts` |   |   |   |   |
| `user_preferences_group_overview_details` | `counts` |   |   |   |   |
| `user_preferences_group_overview_security_dashboard` | `counts` |   |   |   |   |
| `ingress_modsecurity_logging` | `counts` |   |   |   |   |
| `ingress_modsecurity_blocking` | `counts` |   |   |   |   |
| `ingress_modsecurity_disabled` | `counts` |   |   |   |   |
| `ingress_modsecurity_not_installed` | `counts` |   |   |   |   |
| `dependency_list_usages_total` | `counts` |   |   |   |   |
| `epics` | `counts` |   |   |   |   |
| `feature_flags` | `counts` |   |   |   |   |
| `geo_nodes` | `counts` | `geo` |   |   | 地理部署中的站点数 |
| `geo_event_log_max_id` | `counts` | `geo` |   |   | Geo 主数据库上的复制事件数 |
| `incident_issues` | `counts` | `monitor` |   |   | 警报机器人产生的问题 |
| `alert_bot_incident_issues` | `counts` | `monitor` |   |   | 警报机器人产生的问题 |
| `incident_labeled_issues` | `counts` | `monitor` |   |   | 事件标签有问题 |
| `issues_created_gitlab_alerts` | `counts` | `monitor` |   |   | 非警报机器人用户根据警报创建的问题 |
| `issues_created_manually_from_alerts` | `counts` | `monitor` |   |   | 非警报机器人用户根据警报创建的问题 |
| `issues_created_from_alerts` | `counts` | `monitor` |   |   | 从 Prometheus 和警报管理警报创建的问题 |
| `ldap_group_links` | `counts` |   |   |   |   |
| `ldap_keys` | `counts` |   |   |   |   |
| `ldap_users` | `counts` |   |   |   |   |
| `pod_logs_usages_total` | `counts` |   |   |   |   |
| `projects_enforcing_code_owner_approval` | `counts` |   |   |   |   |
| `projects_mirrored_with_pipelines_enabled` | `counts` | `release` |   |   | 启用了存储库镜像的项目 |
| `projects_reporting_ci_cd_back_to_github` | `counts` | `verify` |   |   | 启用 GitHub 服务管道的项目 |
| `projects_with_packages` | `counts` | `package` |   |   | 配置了程序包注册表的项目 |
| `projects_with_prometheus_alerts` | `counts` | `monitor` |   |   | 启用 Prometheus 警报的项目 |
| `projects_with_tracing_enabled` | `counts` | `monitor` |   |   | 启用了跟踪的项目 |
| `projects_with_alerts_service_enabled` | `counts` | `monitor` |   |   | 启用了警报服务的项目 |
| `template_repositories` | `counts` |   |   |   |   |
| `container_scanning_jobs` | `counts` |   |   |   |   |
| `dependency_scanning_jobs` | `counts` |   |   |   |   |
| `license_management_jobs` | `counts` |   |   |   |   |
| `sast_jobs` | `counts` |   |   |   |   |
| `status_page_projects` | `counts` | `monitor` |   |   | 启用状态页的项目 |
| `status_page_issues` | `counts` | `monitor` |   |   | 发布到状态页面的问题 |
| `status_page_incident_publishes` | `counts` | `monitor` |   |   | 发布操作的使用累计次数 |
| `status_page_incident_unpublishes` | `counts` | `monitor` |   |   | 未发布操作的累计使用次数 |
| `epics_deepest_relationship_level` | `counts` |   |   |   |   |
| `operations_dashboard_default_dashboard` | `counts` | `monitor` |   |   | 启用了操作面板的活跃用户 |
| `operations_dashboard_users_with_projects_added` | `counts` | `monitor` |   |   | 在操作仪表板上具有项目的活跃用户 |
| `container_registry_enabled` |   |   |   |   |   |
| `dependency_proxy_enabled` |   |   |   |   |   |
| `gitlab_shared_runners_enabled` |   |   |   |   |   |
| `gravatar_enabled` |   |   |   |   |   |
| `ldap_enabled` |   |   |   |   |   |
| `mattermost_enabled` |   |   |   |   |   |
| `omniauth_enabled` |   |   |   |   |   |
| `prometheus_enabled` |   |   |   |   | 捆绑的 Prometheus 是否已启用 |
| `prometheus_metrics_enabled` |   |   |   |   |   |
| `reply_by_email_enabled` |   |   |   |   |   |
| `average` | `avg_cycle_analytics - code` |   |   |   |   |
| `sd` | `avg_cycle_analytics - code` |   |   |   |   |
| `missing` | `avg_cycle_analytics - code` |   |   |   |   |
| `average` | `avg_cycle_analytics - test` |   |   |   |   |
| `sd` | `avg_cycle_analytics - test` |   |   |   |   |
| `missing` | `avg_cycle_analytics - test` |   |   |   |   |
| `average` | `avg_cycle_analytics - review` |   |   |   |   |
| `sd` | `avg_cycle_analytics - review` |   |   |   |   |
| `missing` | `avg_cycle_analytics - review` |   |   |   |   |
| `average` | `avg_cycle_analytics - staging` |   |   |   |   |
| `sd` | `avg_cycle_analytics - staging` |   |   |   |   |
| `missing` | `avg_cycle_analytics - staging` |   |   |   |   |
| `average` | `avg_cycle_analytics - production` |   |   |   |   |
| `sd` | `avg_cycle_analytics - production` |   |   |   |   |
| `missing` | `avg_cycle_analytics - production` |   |   |   |   |
| `total` | `avg_cycle_analytics` |   |   |   |   |
| `g_analytics_contribution` | `analytics_unique_visits` | `manage` |   |   | 访问/ groups /:group /-/ contribution_analytics |
| `g_analytics_insights` | `analytics_unique_visits` | `manage` |   |   | 访问/ groups /:group /-/ insights |
| `g_analytics_issues` | `analytics_unique_visits` | `manage` |   |   | 访问/ groups /:group /-/ issues_analytics |
| `g_analytics_productivity` | `analytics_unique_visits` | `manage` |   |   | 访问/ groups /:group /-/ a​​nalytics / productivity_analytics |
| `g_analytics_valuestream` | `analytics_unique_visits` | `manage` |   |   | 访问/ groups /:group /-/ a​​nalytics / value_stream_analytics |
| `p_analytics_pipelines` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project / pipelines / chart |
| `p_analytics_code_reviews` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project /-/ a​​nalytics / code_reviews |
| `p_analytics_valuestream` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project /-/ value_stream_analytics |
| `p_analytics_insights` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project / insights |
| `p_analytics_issues` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project /-/ a​​nalytics / issues_analytics |
| `p_analytics_repo` | `analytics_unique_visits` | `manage` |   |   | 访问/:group /:project /-/ graphs / master / charts |
| `u_analytics_todos` | `analytics_unique_visits` | `manage` |   |   | 访问/ dashboard / todos |
| `i_analytics_cohorts` | `analytics_unique_visits` | `manage` |   |   | 访问/-/ instance_statistics /群组 |
| `i_analytics_dev_ops_score` | `analytics_unique_visits` | `manage` |   |   | 访问/-/ instance_statistics / dev_ops_score |
| `analytics_unique_visits_for_any_target` | `analytics_unique_visits` | `manage` |   |   | 访问上面列出的任何页面 |
| `clusters_applications_cert_managers` | `usage_activity_by_stage` | `configure` |   | CE+EE | 启用了证书管理器的唯一集群 |
| `clusters_applications_helm` | `usage_activity_by_stage` | `configure` |   | CE+EE | 启用 Helm 的独特集群 |
| `clusters_applications_ingress` | `usage_activity_by_stage` | `configure` |   | CE+EE | 启用了 Ingress 的唯一集群 |
| `clusters_applications_knative` | `usage_activity_by_stage` | `configure` |   | CE+EE | 启用 Knative 的唯一集群 |
| `clusters_management_project` | `usage_activity_by_stage` | `configure` |   | CE+EE | 启用项目管理的独特集群 |
| `clusters_disabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 非" GitLab 托管群集"总数 |
| `clusters_enabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | GitLab 托管群集总数 |
| `clusters_platforms_gke` | `usage_activity_by_stage` | `configure` |   | CE+EE | 安装了 Google Cloud 的独特集群 |
| `clusters_platforms_eks` | `usage_activity_by_stage` | `configure` |   | CE+EE | 安装了 AWS 的唯一集群 |
| `clusters_platforms_user` | `usage_activity_by_stage` | `configure` |   | CE+EE | 用户提供的唯一集群 |
| `instance_clusters_disabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 实例上禁用了唯一集群 |
| `instance_clusters_enabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 在实例上启用了唯一集群 |
| `group_clusters_disabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 组上禁用了唯一集群 |
| `group_clusters_enabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 在组上启用了唯一集群 |
| `project_clusters_disabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 项目上禁用了唯一集群 |
| `project_clusters_enabled` | `usage_activity_by_stage` | `configure` |   | CE+EE | 在项目上启用了唯一集群 |
| `projects_slack_notifications_active` | `usage_activity_by_stage` | `configure` |   | EE | 启用了 Slack 服务的独特项目 |
| `projects_slack_slash_active` | `usage_activity_by_stage` | `configure` |   | EE | 启用了 Slack'/'命令的独特项目 |
| `projects_with_prometheus_alerts` | `usage_activity_by_stage` | `configure` |   | EE | 启用 Prometheus 且没有警报的项目 |
| `deploy_keys` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `keys` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `merge_requests` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `projects_with_disable_overriding_approvers_per_merge_request` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `projects_without_disable_overriding_approvers_per_merge_request` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `remote_mirrors` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `snippets` | `usage_activity_by_stage` | `create` |   | CE+EE |   |
| `merge_requests_users` | `usage_activity_by_stage_monthly` | `create` |   | CE+EE | 使用合并请求的唯一用户数 |
| `action_monthly_active_users_project_repo` | `usage_activity_by_stage_monthly` | `create` |   | CE+EE | 推送到项目存储库的唯一用户数 |
| `action_monthly_active_users_design_management` | `usage_activity_by_stage_monthly` | `create` |   | CE+EE | 与设计系统管理进行交互的唯一用户数 |
| `action_monthly_active_users_wiki_repo` | `usage_activity_by_stage_monthly` | `create` |   | CE+EE | 创建或更新 Wiki 存储库的用户的唯一数量 |
| `projects_enforcing_code_owner_approval` | `usage_activity_by_stage` | `create` |   | EE |   |
| `merge_requests_with_optional_codeowners` | `usage_activity_by_stage` | `create` |   | EE |   |
| `merge_requests_with_required_codeowners` | `usage_activity_by_stage` | `create` |   | EE |   |
| `projects_imported_from_github` | `usage_activity_by_stage` | `create` |   | EE |   |
| `projects_with_repositories_enabled` | `usage_activity_by_stage` | `create` |   | EE |   |
| `protected_branches` | `usage_activity_by_stage` | `create` |   | EE |   |
| `suggestions` | `usage_activity_by_stage` | `create` |   | EE |   |
| `approval_project_rules` | `usage_activity_by_stage` | `create` |   | EE | 项目批准规则数 |
| `approval_project_rules_with_target_branch` | `usage_activity_by_stage` | `create` |   | EE | 具有非默认目标分支的项目批准规则的数量 |
| `merge_requests_with_added_rules` | `usage_activity_by_stage` | `create` |   | EE | 合并带有附加规则的请求 |
| `clusters` | `usage_activity_by_stage` | `monitor` |   | CE+EE |   |
| `clusters_applications_prometheus` | `usage_activity_by_stage` | `monitor` |   | CE+EE |   |
| `operations_dashboard_default_dashboard` | `usage_activity_by_stage` | `monitor` |   | CE+EE |   |
| `operations_dashboard_users_with_projects_added` | `usage_activity_by_stage` | `monitor` |   | EE |   |
| `projects_prometheus_active` | `usage_activity_by_stage` | `monitor` |   | EE |   |
| `projects_with_error_tracking_enabled` | `usage_activity_by_stage` | `monitor` |   | EE |   |
| `projects_with_tracing_enabled` | `usage_activity_by_stage` | `monitor` |   | EE |   |
| `events` | `usage_activity_by_stage` | `manage` |   | CE+EE |   |
| `groups` | `usage_activity_by_stage` | `manage` |   | CE+EE |   |
| `users_created_at` | `usage_activity_by_stage` | `manage` |   | CE+EE |   |
| `omniauth_providers` | `usage_activity_by_stage` | `manage` |   | CE+EE |   |
| `ldap_keys` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `ldap_users` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `value_stream_management_customized_group_stages` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `projects_with_compliance_framework` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `ldap_servers` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `ldap_group_sync_enabled` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `ldap_admin_sync_enabled` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `group_saml_enabled` | `usage_activity_by_stage` | `manage` |   | EE |   |
| `issues` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `notes` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `projects` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `todos` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `assignee_lists` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `epics` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `label_lists` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `milestone_lists` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `projects_jira_active` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `projects_jira_dvcs_server_active` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `projects_jira_dvcs_server_active` | `usage_activity_by_stage` | `plan` |   | EE |   |
| `service_desk_enabled_projects` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `service_desk_issues` | `usage_activity_by_stage` | `plan` |   | CE+EE |   |
| `deployments` | `usage_activity_by_stage` | `release` |   | CE+EE | 总部署 |
| `failed_deployments` | `usage_activity_by_stage` | `release` |   | CE+EE | 失败的部署总数 |
| `projects_mirrored_with_pipelines_enabled` | `usage_activity_by_stage` | `release` |   | EE | 启用了存储库镜像的项目 |
| `releases` | `usage_activity_by_stage` | `release` |   | CE+EE | 项目中的唯一发行标签 |
| `successful_deployments` | `usage_activity_by_stage` | `release` |   | CE+EE | 成功部署总数 |
| `user_preferences_group_overview_security_dashboard` | `usage_activity_by_stage` | `secure` |   |   |   |
| `ci_builds` | `usage_activity_by_stage` | `verify` |   | CE+EE | 项目中独特的构建 |
| `ci_external_pipelines` | `usage_activity_by_stage` | `verify` |   | CE+EE | 外部存储库中的总管道 |
| `ci_internal_pipelines` | `usage_activity_by_stage` | `verify` |   | CE+EE | GitLab 存储库中的管道总数 |
| `ci_pipeline_config_auto_devops` | `usage_activity_by_stage` | `verify` |   | CE+EE | Auto DevOps 模板中的管道总数 |
| `ci_pipeline_config_repository` | `usage_activity_by_stage` | `verify` |   | CE+EE | 来自存储库中模板的管道 |
| `ci_pipeline_schedules` | `usage_activity_by_stage` | `verify` |   | CE+EE | GitLab 中的管道时间表 |
| `ci_pipelines` | `usage_activity_by_stage` | `verify` |   | CE+EE | 总管道 |
| `ci_triggers` | `usage_activity_by_stage` | `verify` |   | CE+EE | 触发已启用 |
| `clusters_applications_runner` | `usage_activity_by_stage` | `verify` |   | CE+EE | 启用 Runner 的独特集群 |
| `projects_reporting_ci_cd_back_to_github` | `usage_activity_by_stage` | `verify` |   | EE | 启用 GitHub 管道的独特项目 |
| `merge_requests_users` | `usage_activity_by_stage_monthly` | `create` |   |   | 使用合并请求的唯一用户数 |
| `duration_s` | `topology` | `enablement` |   |   | 收集拓扑数据所需的时间 |
| `application_requests_per_hour` | `topology` | `enablement` |   |   | 每小时对 Web 应用程序的请求数 |
| `failures` | `topology` | `enablement` |   |   | 包含有关失败查询的信息 |
| `nodes` | `topology` | `enablement` |   |   | 运行 GitLab 组件的服务器节点列表 |
| `node_memory_total_bytes` | `topology > nodes` | `enablement` |   |   | 该节点的总可用内存 |
| `node_cpus` | `topology > nodes` | `enablement` |   |   | 该节点的 CPU 核心数 |
| `node_uname_info` | `topology > nodes` | `enablement` |   |   | 有关此节点的基本硬件体系结构和 OS 发行信息 |
| `node_services` | `topology > nodes` | `enablement` |   |   | 在此节点上运行的 GitLab 服务列表 |
| `name` | `topology > nodes > node_services` | `enablement` |   |   | 在此节点上运行的 GitLab 服务的名称 |
| `process_count` | `topology > nodes > node_services` | `enablement` |   |   | 为此服务运行的进程数 |
| `process_memory_rss` | `topology > nodes > node_services` | `enablement` |   |   | 服务流程的平均居民集大小 |
| `process_memory_uss` | `topology > nodes > node_services` | `enablement` |   |   | 服务流程的平均唯一集大小 |
| `process_memory_pss` | `topology > nodes > node_services` | `enablement` |   |   | 服务流程的平均比例集大小 |
| `server` | `topology > nodes > node_services` | `enablement` |   |   | 使用的 Web 服务器类型(Unicorn 或 Puma) |
| `network_policy_forwards` | `counts` | `defend` |   | EE | 容器网络转发的数据包的累积计数 |
| `network_policy_drops` | `counts` | `defend` |   | EE | 容器网络丢弃的数据包的累积计数 |

## Example Usage Ping payload[](#example-usage-ping-payload "Permalink")

以下是用法 Ping 有效内容的示例内容.

```
{  "uuid":  "0000000-0000-0000-0000-000000000000",  "hostname":  "example.com",  "version":  "12.10.0-pre",  "installation_type":  "omnibus-gitlab",  "active_user_count":  999,  "recorded_at":  "2020-04-17T07:43:54.162+00:00",  "edition":  "EEU",  "license_md5":  "00000000000000000000000000000000",  "license_id":  null,  "historical_max_users":  999,  "licensee":  {  "Name":  "ABC, Inc.",  "Email":  "email@example.com",  "Company":  "ABC, Inc."  },  "license_user_count":  999,  "license_starts_at":  "2020-01-01",  "license_expires_at":  "2021-01-01",  "license_plan":  "ultimate",  "license_add_ons":  {  },  "license_trial":  false,  "counts":  {  "assignee_lists":  999,  "boards":  999,  "ci_builds":  999,  ...  },  "container_registry_enabled":  true,  "dependency_proxy_enabled":  false,  "gitlab_shared_runners_enabled":  true,  "gravatar_enabled":  true,  "influxdb_metrics_enabled":  true,  "ldap_enabled":  false,  "mattermost_enabled":  false,  "omniauth_enabled":  true,  "prometheus_enabled":  false,  "prometheus_metrics_enabled":  false,  "reply_by_email_enabled":  "incoming+%{key}@incoming.gitlab.com",  "signup_enabled":  true,  "web_ide_clientside_preview_enabled":  true,  "ingress_modsecurity_enabled":  true,  "projects_with_expiration_policy_disabled":  999,  "projects_with_expiration_policy_enabled":  999,  ...  "elasticsearch_enabled":  true,  "license_trial_ends_on":  null,  "geo_enabled":  false,  "git":  {  "version":  {  "major":  2,  "minor":  26,  "patch":  1  }  },  "gitaly":  {  "version":  "12.10.0-rc1-93-g40980d40",  "servers":  56,  "clusters":  14,  "filesystems":  [  "EXT_2_3_4"  ]  },  "gitlab_pages":  {  "enabled":  true,  "version":  "1.17.0"  },  "database":  {  "adapter":  "postgresql",  "version":  "9.6.15"  },  "app_server":  {  "type":  "console"  },  "avg_cycle_analytics":  {  "issue":  {  "average":  999,  "sd":  999,  "missing":  999  },  "plan":  {  "average":  null,  "sd":  999,  "missing":  999  },  "code":  {  "average":  null,  "sd":  999,  "missing":  999  },  "test":  {  "average":  null,  "sd":  999,  "missing":  999  },  "review":  {  "average":  null,  "sd":  999,  "missing":  999  },  "staging":  {  "average":  null,  "sd":  999,  "missing":  999  },  "production":  {  "average":  null,  "sd":  999,  "missing":  999  },  "total":  999  },  "analytics_unique_visits":  {  "g_analytics_contribution":  999,  ...  },  "usage_activity_by_stage":  {  "configure":  {  "project_clusters_enabled":  999,  ...  },  "create":  {  "merge_requests":  999,  ...  },  "manage":  {  "events":  999,  ...  },  "monitor":  {  "clusters":  999,  ...  },  "package":  {  "projects_with_packages":  999  },  "plan":  {  "issues":  999,  ...  },  "release":  {  "deployments":  999,  ...  },  "secure":  {  "user_container_scanning_jobs":  999,  ...  },  "verify":  {  "ci_builds":  999,  ...  }  },  "usage_activity_by_stage_monthly":  {  "configure":  {  "project_clusters_enabled":  999,  ...  },  "create":  {  "merge_requests":  999,  ...  },  "manage":  {  "events":  999,  ...  },  "monitor":  {  "clusters":  999,  ...  },  "package":  {  "projects_with_packages":  999  },  "plan":  {  "issues":  999,  ...  },  "release":  {  "deployments":  999,  ...  },  "secure":  {  "user_container_scanning_jobs":  999,  ...  },  "verify":  {  "ci_builds":  999,  ...  }  },  "topology":  {  "duration_s":  0.013836685999194742,  "application_requests_per_hour":  4224,  "failures":  [],  "nodes":  [  {  "node_memory_total_bytes":  33269903360,  "node_cpus":  16,  "node_uname_info":  {  "machine":  "x86_64",  "sysname":  "Linux",  "release":  "4.19.76-linuxkit"  },  "node_services":  [  {  "name":  "web",  "process_count":  16,  "process_memory_pss":  233349888,  "process_memory_rss":  788220927,  "process_memory_uss":  195295487,  "server":  "puma"  },  {  "name":  "sidekiq",  "process_count":  1,  "process_memory_pss":  734080000,  "process_memory_rss":  750051328,  "process_memory_uss":  731533312  },  ...  ],  ...  },  ...  ]  }  } 
```