%p.mb-2=s_('%{service_ping_link_start}Learn more%{service_ping_link_end} about what information is shared with GitLab Inc.').html_safe%{service_ping_link_start: service_ping_link_start,service_ping_link_end: '</a>'.html_safe}
%p.mb-2=s_('%{service_ping_link_start}Learn more%{service_ping_link_end} about what information is shared with GitLab Inc.').html_safe%{service_ping_link_start: service_ping_link_start,service_ping_link_end: '</a>'.html_safe}
=s_('For more information, see the documentation on %{deactivating_service_ping_link_start}deactivating service ping%{deactivating_service_ping_link_end}.').html_safe%{deactivating_service_ping_link_start: deactivating_service_ping_link_start,deactivating_service_ping_link_end: '</a>'.html_safe}
=s_('For more information, see the documentation on %{deactivating_service_ping_link_start}deactivating service ping%{deactivating_service_ping_link_end}.').html_safe%{deactivating_service_ping_link_start: deactivating_service_ping_link_start,deactivating_service_ping_link_end: '</a>'.html_safe}
@@ -44,7 +44,7 @@ Learn how to install, configure, update, and maintain your GitLab instance.
...
@@ -44,7 +44,7 @@ Learn how to install, configure, update, and maintain your GitLab instance.
-[Adjust your instance's timezone](timezone.md): Customize the default time zone of GitLab.
-[Adjust your instance's timezone](timezone.md): Customize the default time zone of GitLab.
-[System hooks](../system_hooks/system_hooks.md): Notifications when users, projects and keys are changed.
-[System hooks](../system_hooks/system_hooks.md): Notifications when users, projects and keys are changed.
-[Security](../security/index.md): Learn what you can do to further secure your GitLab instance.
-[Security](../security/index.md): Learn what you can do to further secure your GitLab instance.
-[Usage statistics, version check, and usage ping](../user/admin_area/settings/usage_statistics.md): Enable or disable information about your instance to be sent to GitLab, Inc.
-[Usage statistics, version check, and Service Ping](../user/admin_area/settings/usage_statistics.md): Enable or disable information about your instance to be sent to GitLab, Inc.
-[Global user settings](user_settings.md): Configure instance-wide user permissions.
-[Global user settings](user_settings.md): Configure instance-wide user permissions.
-[Polling](polling.md): Configure how often the GitLab UI polls for updates.
-[Polling](polling.md): Configure how often the GitLab UI polls for updates.
-[GitLab Pages configuration](pages/index.md): Enable and configure GitLab Pages.
-[GitLab Pages configuration](pages/index.md): Enable and configure GitLab Pages.
When adding new counters for usage ping, the preferred way to count records is using the `Gitlab::Database::BatchCount` class. The iteration logic implemented in `BatchCount` has similar performance characteristics like `EachBatch`. Most of the tips and suggestions for improving `BatchCount` mentioned above applies to `BatchCount` as well.
When adding new counters for Service Ping, the preferred way to count records is using the `Gitlab::Database::BatchCount` class. The iteration logic implemented in `BatchCount` has similar performance characteristics like `EachBatch`. Most of the tips and suggestions for improving `BatchCount` mentioned above applies to `BatchCount` as well.
@@ -21,7 +21,7 @@ When you are optimizing your SQL queries, there are two dimensions to pay attent
...
@@ -21,7 +21,7 @@ When you are optimizing your SQL queries, there are two dimensions to pay attent
| Queries in a migration | `100ms` | This is different than the total [migration time](database_review.md#timing-guidelines-for-migrations). |
| Queries in a migration | `100ms` | This is different than the total [migration time](database_review.md#timing-guidelines-for-migrations). |
| Concurrent operations in a migration | `5min` | Concurrent operations do not block the database, but they block the GitLab update. This includes operations such as `add_concurrent_index` and `add_concurrent_foreign_key`. |
| Concurrent operations in a migration | `5min` | Concurrent operations do not block the database, but they block the GitLab update. This includes operations such as `add_concurrent_index` and `add_concurrent_foreign_key`. |
| Background migrations | `1s` | |
| Background migrations | `1s` | |
| Usage Ping | `1s` | See the [usage ping docs](usage_ping/index.md#developing-and-testing-usage-ping) for more details. |
| Service Ping | `1s` | See the [Service Ping docs](usage_ping/index.md#developing-and-testing-service-ping) for more details. |
- When analyzing your query's performance, pay attention to if the time you are seeing is on a [cold or warm cache](#cold-and-warm-cache). These guidelines apply for both cache types.
- When analyzing your query's performance, pay attention to if the time you are seeing is on a [cold or warm cache](#cold-and-warm-cache). These guidelines apply for both cache types.
- When working with batched queries, change the range and batch size to see how it effects the query timing and caching.
- When working with batched queries, change the range and batch size to see how it effects the query timing and caching.
| `key_path` | yes | JSON key path for the metric, location in Usage Ping payload. |
| `key_path` | yes | JSON key path for the metric, location in Service Ping payload. |
| `name` | no | Metric name suggestion. Can replace the last part of `key_path`. |
| `name` | no | Metric name suggestion. Can replace the last part of `key_path`. |
| `description` | yes | |
| `description` | yes | |
| `product_section` | yes | The [section](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/sections.yml). |
| `product_section` | yes | The [section](https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/data/sections.yml). |
...
@@ -58,7 +58,7 @@ Metric definitions can have one of the following statuses:
...
@@ -58,7 +58,7 @@ Metric definitions can have one of the following statuses:
-`broken`: Metric reports broken data (for example, -1 fallback), or does not report data at all. A metric marked as `broken` must also have the `repair_issue_url` attribute.
-`broken`: Metric reports broken data (for example, -1 fallback), or does not report data at all. A metric marked as `broken` must also have the `repair_issue_url` attribute.
-`not_used`: Metric is not used in any dashboard.
-`not_used`: Metric is not used in any dashboard.
-`deprecated`: Metric is deprecated and possibly planned to be removed.
-`deprecated`: Metric is deprecated and possibly planned to be removed.
-`removed`: Metric was removed, but it may appear in Usage Ping payloads sent from instances running on older versions of GitLab.
-`removed`: Metric was removed, but it may appear in Service Ping payloads sent from instances running on older versions of GitLab.
### Metric value_type
### Metric value_type
...
@@ -99,7 +99,7 @@ should be changed.
...
@@ -99,7 +99,7 @@ should be changed.
We use the following categories to classify a metric:
We use the following categories to classify a metric:
-`Operational`: Required data for operational purposes.
-`Operational`: Required data for operational purposes.
-`Optional`: Data that is optional to collect. This can be [enabled or disabled](../usage_ping/index.md#disable-usage-ping) in the Admin Area.
-`Optional`: Data that is optional to collect. This can be [enabled or disabled](../usage_ping/index.md#disable-service-ping) in the Admin Area.
-`Subscription`: Data related to licensing.
-`Subscription`: Data related to licensing.
-`Standard`: Standard set of identifiers that are included when collecting data.
-`Standard`: Standard set of identifiers that are included when collecting data.
@@ -6,13 +6,13 @@ info: To determine the technical writer assigned to the Stage/Group associated w
...
@@ -6,13 +6,13 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Metrics instrumentation guide
# Metrics instrumentation guide
This guide describes how to develop Usage Ping metrics using metrics instrumentation.
This guide describes how to develop Service Ping metrics using metrics instrumentation.
## Nomenclature
## Nomenclature
-**Instrumentation class**:
-**Instrumentation class**:
- Inherits one of the metric classes: `DatabaseMetric`, `RedisHLLMetric` or `GenericMetric`.
- Inherits one of the metric classes: `DatabaseMetric`, `RedisHLLMetric` or `GenericMetric`.
- Implements the logic that calculates the value for a Usage Ping metric.
- Implements the logic that calculates the value for a Service Ping metric.
-**Metric definition**
-**Metric definition**
The Usage Data metric YAML definition.
The Usage Data metric YAML definition.
...
@@ -27,7 +27,7 @@ A metric definition has the [`instrumentation_class`](metrics_dictionary.md) fie
...
@@ -27,7 +27,7 @@ A metric definition has the [`instrumentation_class`](metrics_dictionary.md) fie
The defined instrumentation class should have one of the existing metric classes: `DatabaseMetric`, `RedisHLLMetric`, or `GenericMetric`.
The defined instrumentation class should have one of the existing metric classes: `DatabaseMetric`, `RedisHLLMetric`, or `GenericMetric`.
Using the instrumentation classes ensures that metrics can fail safe individually, without breaking the entire
Using the instrumentation classes ensures that metrics can fail safe individually, without breaking the entire
process of Usage Ping generation.
process of Service Ping generation.
We have built a domain-specific language (DSL) to define the metrics instrumentation.
We have built a domain-specific language (DSL) to define the metrics instrumentation.
...
@@ -88,7 +88,7 @@ end
...
@@ -88,7 +88,7 @@ end
## Creating a new metric instrumentation class
## Creating a new metric instrumentation class
To create a stub instrumentation for a Usage Ping metric, you can use a dedicated [generator](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/generators/gitlab/usage_metric_generator.rb):
To create a stub instrumentation for a Service Ping metric, you can use a dedicated [generator](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/generators/gitlab/usage_metric_generator.rb):
The generator takes the class name as an argument and the following options:
The generator takes the class name as an argument and the following options:
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
info:To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
@@ -46,7 +46,7 @@ The following Rake tasks are available for use with GitLab:
...
@@ -46,7 +46,7 @@ The following Rake tasks are available for use with GitLab:
| [Repository storage](../administration/raketasks/storage.md) | List and migrate existing projects and attachments from legacy storage to hashed storage. |
| [Repository storage](../administration/raketasks/storage.md) | List and migrate existing projects and attachments from legacy storage to hashed storage. |
| [Uploads migrate](../administration/raketasks/uploads/migrate.md) | Migrate uploads between local storage and object storage. |
| [Uploads migrate](../administration/raketasks/uploads/migrate.md) | Migrate uploads between local storage and object storage. |
| [Uploads sanitize](../administration/raketasks/uploads/sanitize.md) | Remove EXIF data from images uploaded to earlier versions of GitLab. |
| [Uploads sanitize](../administration/raketasks/uploads/sanitize.md) | Remove EXIF data from images uploaded to earlier versions of GitLab. |
| [Usage data](../administration/troubleshooting/gitlab_rails_cheat_sheet.md#generate-usage-ping) | Generate and troubleshoot [Usage Ping](../development/usage_ping/index.md). |
| [Usage data](../administration/troubleshooting/gitlab_rails_cheat_sheet.md#generate-service-ping) | Generate and troubleshoot [Service Ping](../development/usage_ping/index.md). |
| [User management](user_management.md) | Perform user management tasks. |
| [User management](user_management.md) | Perform user management tasks. |