INTEGRITY Документация

Метрики

Artifacts предоставляет аналитику, которая позволяет отслеживать активность репозиториев, ошибки и длительность операций в рамках вашего аккаунта.

Метрики Artifacts доступны через GraphQL Analytics API. С их помощью можно отвечать на такие вопросы, как какие репозитории наиболее загружены, где концентрируются ошибки и сколько времени занимают операции.

Метрики

Artifacts в настоящее время экспортирует artifactsEventsAdaptiveGroups набор данных GraphQL.

Метрика поле GraphQL Описание
Операции count Общее число событий Artifacts, соответствующих фильтру запроса. Включает успешные действия и ошибки.
Общая продолжительность sum.durationMs Общее время обработки соответствующих операций Artifacts, в миллисекундах.
Средняя длительность avg.durationMs Среднее время на одну подходящую операцию, в миллисекундах.
Длительность p25 quantiles.durationMsP25 Длительность операции на 25-м процентиле, в миллисекундах.
Длительность p50 quantiles.durationMsP50 Медианная длительность операции, в миллисекундах.
Длительность p75 quantiles.durationMsP75 Длительность операции на 75-м процентиле, в миллисекундах.
Длительность p90 quantiles.durationMsP90 Длительность операции на 90-м процентиле, в миллисекундах.
Длительность p95 quantiles.durationMsP95 Длительность операции на 95-м процентиле, в миллисекундах.
Длительность p99 quantiles.durationMsP99 Длительность операции на 99-м процентиле, в миллисекундах.
Длительность p999 quantiles.durationMsP999 Длительность операции на 99.9-м процентиле, в миллисекундах.

Метрики доступны для запросов за последние 31 день. Для запросов требуется accountTag фильтр с вашим Cloudflare Account ID.

Измерения

Use these dimensions to filter or group results:

Измерение Описание
repository Полный путь к репозиторию в формате namespace/name.
repositoryNamespace Пространство имён, которое содержит репозиторий.
repositoryName Имя репозитория внутри пространства имён.
eventKind Категория события верхнего уровня. Используйте action для успешных операций и error для сбоев.
eventType Конкретная операция или тип ошибки.
errorMessage Сообщение об ошибке для неудачных операций.
date Календарная дата события.
datetime Точная метка времени события.
datetimeMinute Время события, усечённое до минуты.
datetimeFiveMinutes Время события, усечённое до пятиминутных интервалов.
datetimeFifteenMinutes Время события, усечённое до пятнадцатиминутных интервалов.
datetimeHour Время события, усечённое до часа.
datetimeSixHours Время события, усечённое до шестичасовых интервалов.

Типы событий

Artifacts в настоящее время передаёт следующие значения в eventType:

Тип события Тип Описание
create action Репозиторий создан.
fork action Создан форк репозитория.
push action Клиент отправил данные в репозиторий.
pull action Клиент получил или клонировал данные из репозитория.
delete action Репозиторий удалён.
storageLimitReached error Операция достигла ограничения на объём хранилища.
serverError error Сервис не смог обработать запрос.
clientError error Клиент отправил недопустимый или неподдерживаемый запрос.
rateLimited error Запрос отклонён ограничителем частоты запросов.

Примеры запросов GraphQL

Вы можете запрашивать аналитику Artifacts с помощью GraphQL Analytics API. Во всех примерах на этой странице используется artifactsEventsAdaptiveGroups набор данных.

Операции по репозиторию в пределах пространства имён

Используйте этот запрос, чтобы найти самые загруженные репозитории в одном пространстве имён за определённый период. Запрос также возвращает среднюю длительность операций, поэтому можно сравнивать активность и задержку одновременно.

query ArtifactsOperationsByRepo(
	$accountTag: String!
	$datetimeStart: Time
	$datetimeEnd: Time
	$repositoryNamespace: String!
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			artifactsEventsAdaptiveGroups(
				limit: 100
				filter: {
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
					repositoryNamespace: $repositoryNamespace
					eventKind: "action"
				}
				orderBy: [count_DESC]
			) {
				count
				avg {
					durationMs
				}
				dimensions {
					repositoryName
				}
			}
		}
	}
}

Ошибки по репозиторию, по убыванию

Используйте этот запрос, чтобы ранжировать репозитории по количеству ошибок. Он помогает определить, какие репозитории чаще всего дают сбои и какие типы ошибок к этому приводят.

query ArtifactsErrorsByRepo(
	$accountTag: String!
	$datetimeStart: Time
	$datetimeEnd: Time
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			artifactsEventsAdaptiveGroups(
				limit: 100
				filter: {
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
					eventKind: "error"
				}
				orderBy: [count_DESC]
			) {
				count
				dimensions {
					repository
					eventType
				}
			}
		}
	}
}

Репозитории по push, по убыванию

Используйте этот запрос, чтобы увидеть, какие репозитории получают больше всего push-операций за выбранный период. Это удобно для выявления репозиториев с высокой нагрузкой на запись в рамках всего аккаунта.

query ArtifactsPushesByRepo(
	$accountTag: String!
	$datetimeStart: Time
	$datetimeEnd: Time
) {
	viewer {
		accounts(filter: { accountTag: $accountTag }) {
			artifactsEventsAdaptiveGroups(
				limit: 100
				filter: {
					datetime_geq: $datetimeStart
					datetime_leq: $datetimeEnd
					eventKind: "action"
					eventType: "push"
				}
				orderBy: [count_DESC]
			) {
				count
				dimensions {
					repository
				}
			}
		}
	}
}