利用データのメトリクスガイド
このガイドでは、usage_data.rb
におけるメトリクスの非推奨の使用法について説明します。
usage_data.rb
で直接メトリクスを実装することは非推奨です。usage_data.rb
インスツルメンテーション・クラスをusage_data.rb
使用することをお勧めします。通常のバッチカウンタ
指定されたActiveRecord_Relation
の単純なカウント、区別されないバッチカウントを行い、batch_size
をスマートに削減し、エラーを処理します。ActiveRecord::StatementInvalid
エラーを処理します。
メソッドを使用します:
count(relation, column = nil, batch: true, start: nil, finish: nil)
引数:
-
relation
カウントを実行する ActiveRecord_Relation -
column
デフォルトは主キーです。 -
batch
デフォルトはtrue
です。 -
start
: 複雑な分単位の計算を避けるために、バッチカウントの開始をカスタムします。 -
end
: 複雑な最小値計算を避けるためのバッチ終了時のカスタムカウント
例:
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))
個別のバッチ・カウンタ
与えられた列の与えられたActiveRecord_Relation
の区別されたカウント、区別されたバッチカウントは、batch_size
をスマートに削減し、エラーを処理します。ActiveRecord::StatementInvalid
エラーを処理します。
メソッドを使用します:
distinct_count(relation, column = nil, batch: true, batch_size: nil, start: nil, finish: nil)
引数:
-
relation
: カウントを実行する ActiveRecord_Relation -
column
デフォルトは主キーです。 -
batch
デフォルトはtrue
です。 -
batch_size
何も設定されていない場合、デフォルト値10000が使用されます。Gitlab::Database::BatchCounter
-
start
: 複雑な分単位の計算を避けるために、バッチカウントの開始をカスタムします。 -
end
: 複雑な最小値計算を避けるためのバッチ終了時のカスタムカウント
一意でないカラムをカウントすると、パフォーマンスのイシューが発生する可能性があります。詳細については、バッチでのテーブルの反復処理ガイドを参照してください。
例:
distinct_count(::Project, :creator_id)
distinct_count(::Note.with_suggestions.where(time_period), :author_id, start: ::User.minimum(:id), finish: ::User.maximum(:id))