← Artifacts / artifacts / observability
Метрики
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
}
}
}
}
}