65840591cd
Prior to this change, health checks checked for writeability of the NFS shards. Given we're moving away from that, this patch extends the checks for Gitaly to check for read and writeability. Potentially some dashboards will break, as over time these metrics will no longer appear as Prometheus doesn't get the data anymore. Observability in the circuit breaker will be reduced, but its not expected to be turned on and the circuit breaker is being removed soon too. Closes https://gitlab.com/gitlab-org/gitaly/issues/1218
36 lines
863 B
Ruby
36 lines
863 B
Ruby
require 'prometheus/client/formats/text'
|
|
|
|
class MetricsService
|
|
CHECKS = [
|
|
Gitlab::HealthChecks::DbCheck,
|
|
Gitlab::HealthChecks::Redis::RedisCheck,
|
|
Gitlab::HealthChecks::Redis::CacheCheck,
|
|
Gitlab::HealthChecks::Redis::QueuesCheck,
|
|
Gitlab::HealthChecks::Redis::SharedStateCheck,
|
|
Gitlab::HealthChecks::GitalyCheck
|
|
].freeze
|
|
|
|
def prometheus_metrics_text
|
|
Prometheus::Client::Formats::Text.marshal_multiprocess(multiprocess_metrics_path)
|
|
end
|
|
|
|
def health_metrics_text
|
|
metrics = CHECKS.flat_map(&:metrics)
|
|
|
|
formatter.marshal(metrics)
|
|
end
|
|
|
|
def metrics_text
|
|
prometheus_metrics_text.concat(health_metrics_text)
|
|
end
|
|
|
|
private
|
|
|
|
def formatter
|
|
@formatter ||= Gitlab::HealthChecks::PrometheusTextFormat.new
|
|
end
|
|
|
|
def multiprocess_metrics_path
|
|
::Prometheus::Client.configuration.multiprocess_files_dir
|
|
end
|
|
end
|