Цель:
- убедиться что мы можем отправлять события в Sentry (получаем
20X
код ответа при отправке) - убедиться что события доставлены в конкретные
issue
Отправка события на store endpoint:
PROJECT_ID=0;
HOST=''
SENTRY_KEY=''
curl -v \
-d '{"exception":{"values":[{"type":"Test issue","value":"store"}]}}' \
-H 'Content-type: application/json' \
-H "X-Sentry-Auth: Sentry sentry_version=7, sentry_key=$SENTRY_KEY" \
"https://$HOST/api/$PROJECT_ID/store/"
Отправка события на envelope endpoint:
PROJECT_ID=0;
HOST=''
SENTRY_KEY=''
# подготовка тела запроса
echo '{"sdk":{"name":"sentry.javascript.vue","version":"7.54.0"},"trace":{"environment":"monitoring"}}' > body.json
echo '{"type":"event"}' >> body.json
echo '{"exception":{"values":[{"type":"Test issue","value":"envelope"}]}}' >> body.json
curl -v \
-H 'Content-type: text/plain' \
--data-binary @body.json \
"https://$HOST/api/$PROJECT_ID/envelope/?sentry_key=$SENTRY_KEY&sentry_version=7"
Отправка события через tunnel на envelope endpoint
:
PROJECT_ID=0;
HOST=''
SENTRY_KEY=''
# подготовка тела запроса
# авторизация в теле прямо из клиента, нам она не нужна, но для правдоподобности оставим
echo '{"sdk":{"name":"sentry.javascript.vue","version":"7.54.0"},"trace":{"environment":"monitoring"},"dsn":"https://'$SENTRY_KEY'@'$HOST'/'$PROJECT_ID'"}' > body.json
echo '{"type":"event"}' >> body.json
echo '{"exception":{"values":[{"type":"Test issue","value":"envelope tunnel"}]}}' >> body.json
# мы отправляем туда же, куда обычно шлем запросы, потому что под капотом свой обработчик
# он преобразует запрос и перенаправит его на сервер Sentry
curl -v \
-H 'Content-type: text/plain' \
--data-binary @body.json \
"https://$HOST/api/$PROJECT_ID/envelope/$SENTRY_KEY/"
Теперь у нас есть 3 разных
issue
, которые нужно мониторить на предмет давности доставки событий.
Проверка сколько секунд назад было последнее событие в issue
через API (нужно выполнить для каждого сгенерированного issue
на прошлых шагах):
ISSUE_ID=0
SENTRY_TOKEN=""
HOST=''
lastSeen=$(curl -s -H "Authorization: Bearer $SENTRY_TOKEN" "https://$HOST/api/0/issues/$ISSUE_ID/" | grep -o -m 1 '"lastSeen":"[^"]*' | grep -o -m 1 '[^"]*$')
timeDiff=$(( $(date -d "$lastSeen" +"%s") - $(date +%s) ))
timeDiff=${timeDiff#-}
echo $timeDiff