There are several types of counters in `usage_data.rb`:
There are several types of counters for metrics:
-**[Batch counters](#batch-counters)**: Used for counts and sums.
-**[Redis counters](#redis-counters):** Used for in-memory counts.
...
...
@@ -72,64 +72,39 @@ you must add a specialized index on the columns involved in a counter.
#### Ordinary batch counters
Simple count of a given `ActiveRecord_Relation`, does a non-distinct batch count, smartly reduces `batch_size`, and handles errors.
Handles the `ActiveRecord::StatementInvalid` error.
Create a new [database metrics](metrics_instrumentation.md#database-metrics) instrumentation class with `count` operation for a given `ActiveRecord_Relation`
Examples using `usage_data.rb` have been [deprecated](usage_data.md). We recommend to use [instrumentation classes](metrics_instrumentation.md).
#### Distinct batch counters
Distinct count of a given `ActiveRecord_Relation` on given column, a distinct batch count, smartly reduces `batch_size`, and handles errors.
Handles the `ActiveRecord::StatementInvalid` error.
Create a new [database metrics](metrics_instrumentation.md#database-metrics) instrumentation class with `distinct_count` operation for a given `ActiveRecord_Relation`.
-`relation`: the ActiveRecord_Relation to perform the count
-`column`: the column to perform the distinct count, by default is the primary key
-`batch`: default `true` to use batch counting
-`batch_size`: if none set it uses default value 10000 from `Gitlab::Database::BatchCounter`
-`start`: custom start of the batch counting to avoid complex min calculations
-`end`: custom end of the batch counting to avoid complex min calculations
WARNING:
Counting over non-unique columns can lead to performance issues. For more information, see the [iterating tables in batches](../iterating_tables_in_batches.md) guide.
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
---
# Usage Data Metrics guide
This guide describes deprecated usage for metrics in `usage_data.rb`.
NOTE:
Implementing metrics direct in `usage_data.rb` is deprecated, We recommend you use [instrumentation classes](metrics_instrumentation.md).
## Ordinary batch counters
Simple count of a given `ActiveRecord_Relation`, does a non-distinct batch count, smartly reduces `batch_size`, and handles errors.
Handles the `ActiveRecord::StatementInvalid` error.
-`relation`: the ActiveRecord_Relation to perform the count
-`column`: the column to perform the distinct count, by default is the primary key
-`batch`: default `true` to use batch counting
-`batch_size`: if none set it uses default value 10000 from `Gitlab::Database::BatchCounter`
-`start`: custom start of the batch counting to avoid complex min calculations
-`end`: custom end of the batch counting to avoid complex min calculations
WARNING:
Counting over non-unique columns can lead to performance issues. For more information, see the [iterating tables in batches](../iterating_tables_in_batches.md) guide.