콘텐츠로 건너뛰기
Telemetry
통합 가이드

엘릭서 피닉스 Telemetry 통합

Phoenix 요청 라이프사이클 이벤트에 연결하고 연결 데이터, 매개변수 또는 예외 텍스트를 복사하지 않고 제한된 터미널 요청 결과를 전달합니다.

검토자 Telemetry 제품 팀 . 계측 계약, 개인 정보 보호 경계 및 구현 지침. 표준 및 소유권 검토

다음에 유용합니다.
  • Phoenix API 신뢰성
  • 릴리스별 라우팅 지연 시간
  • 제어된 요청 실패 분석
구현 증거

Elixir Phoenix Telemetry Integration: 경계에서 검증된 행까지

제어된 애플리케이션 경계에서 Elixir Phoenix Telemetry Integration를 사용하고, 이벤트 계약을 작게 유지하고, 집계 뷰를 구축하기 전에 알려진 결과를 확인하세요.

  1. 1

    결과를 선택하세요

    Phoenix API 신뢰성

  2. 2

    계약 정의

    route_template, 방법, status_code, 상태, duration_ms 및 릴리스

  3. 3

    경계 계측

    애플리케이션 시작 중에 한 번 연결하고 터미널 Phoenix 엔드포인트 또는 라우터 디스패치 중지 이벤트를 처리합니다. System.convert_time_unit/3을 사용하여 기본 기간 단위를 변환합니다.

  4. 4

    증거를 확인하세요

    Exercise a known fixture, then inspect your_event_table for one correctly typed terminal row.

시작하기 전에

전제 조건 및 경계

  • Phoenix 엔드포인트 텔레메트리이 활성화되고 핸들러를 한 번 설치하는 감독되는 애플리케이션 프로세스
  • 제한된 연결 및 응답 시간 제한이 있는 서버 측 HTTP 클라이언트
  • 요청 매개변수 및 연결 콘텐츠를 제외하는 경로 템플릿, 상태 및 제어된 오류 분류

배송 설정

서버 측 설치 및 초기화

서버 측 키, 제한된 HTTP 시간 제한 및 명시적인 재시도 제한이 있는 감독되는 클라이언트 프로세스를 사용합니다. 브라우저 번들, 클라이언트에 표시되는 환경 변수, 소스 제어, 로그 및 예외 메시지에서 수집 자격 증명을 유지하세요.

  1. 1제한된 네트워크 동작을 갖춘 재사용 가능한 서버 측 전달 클라이언트 하나를 준비합니다.
  2. 2성공, 실패, 재시도 또는 시간 초과 경계에 결과 이벤트를 추가합니다.
  3. 3알림을 활성화하기 전에 제어된 고정 장치를 보내고 저장된 행을 검사하십시오.

스니펫

하나의 체계적인 이벤트로 시작하세요

워크플로가 완료, 실패 또는 재시도되는 위치에 이 셰이프를 추가합니다. 그런 다음 실제 필드에서 대시보드를 구축합니다.

elixir-phoenix

Elixir Phoenix Telemetry Integration 이벤트

elixir
defmodule MyAppWeb.TelemetryOutcome do
  def attach do
    :telemetry.attach(
      "telemetry-phoenix-request-outcome",
      [:phoenix, :endpoint, :stop],
      &__MODULE__.handle_stop/4,
      nil
    )
  end

  def handle_stop(_event, measurements, metadata, _config) do
    conn = metadata.conn

    event = %{
      route_template: conn.private[:phoenix_route] || "unmatched",
      method: conn.method,
      status_code: conn.status,
      status: if(conn.status < 500, do: "success", else: "failed"),
      duration_ms:
        System.convert_time_unit(measurements.duration, :native, :millisecond),
      release: System.get_env("APP_RELEASE", "development")
    }

    # Supervise this app-owned client and give it bounded HTTP timeouts.
    MyApp.TelemetryIngest.enqueue("phoenix_request_completed", event)
  end
end

이벤트 계약

route_template, 방법, status_code, 상태, duration_ms 및 릴리스

request_id, account_id, 환경, node_role 및 승인 시 제어되는 error_type

conn.params, 쿼리 문자열, 요청 또는 응답 본문, 세션, 인증 헤더, 스택 추적 또는 무제한 메타데이터 없음

구현 체크포인트

체크포인트 1

애플리케이션 시작 중에 한 번 연결하고 터미널 Phoenix 엔드포인트 또는 라우터 디스패치 중지 이벤트를 처리합니다. System.convert_time_unit/3을 사용하여 기본 기간 단위를 변환합니다.

체크포인트 2

Phoenix 및 Plug 중지 이벤트는 완전한 분산 범위를 구성하지 않으며 Plug 문서에서는 오류 후 중지 이벤트가 발생하지 않는 경우를 기록합니다. 해당 진단 경계에 대한 예외 및 추적 도구를 유지합니다.

체크포인트 3

감시되고 제한된 전달 경로를 통해 비동기식으로 전달하므로 텔레메트리 HTTP 대기 시간으로 인해 사용자 요청이 확장되거나 애플리케이션 사서함이 불안정해질 수 없습니다.

검증

이벤트가 도착했음을 증명하세요.

알려진 성공 및 실패 사례를 연습한 후 이를 실행하십시오. 최종 이벤트 계약이 스니펫과 다른 경우 대체 테이블 이름을 바꾸세요.

elixir-phoenix-검증

Elixir Phoenix Telemetry Integration 확인 쿼리

sql
SELECT *
FROM your_event_table
ORDER BY timestamp_utc DESC
LIMIT 20;
예상 상태, 식별자, 단위 및 UTC 시간을 사용하여 논리적 결과당 하나의 터미널 행을 확인합니다.
유추된 스키마를 검사하고 재시도가 필드 유형을 변경하거나 새 논리적 이벤트 ID를 생성하지 않는지 확인합니다.
자격 증명, 원시 페이로드, 프롬프트, 비공개 콘텐츠 및 무제한 오류 메시지에 대해 저장된 필드를 검색합니다.
대시보드를 완전한 것으로 처리하기 전에 공급자 시간 초과, 수집 거부 및 프로세스 종료를 실행합니다.

구현 참조

새로운 프로덕션 경로를 활성화하기 전에 이벤트 계약, 데이터 안전 지침, 업스트림 기본 문서를 검토하세요.

프로덕션 경계

결과 이벤트를 작고 복구 가능하게 유지

이 패턴은 다음을 제공합니다.

  • 업스트림 워크플로우 옆에 제한된 SQL 지원 결과가 있습니다.
  • 대시보드, 알림 및 교차 이벤트 상관 관계를 위한 안정적인 필드입니다.
  • 성공, 실패, 재시도 및 시간 초과 동작을 검증하기 위한 고정 장치 기반 경로입니다.

이 패턴은 제공하지 않습니다

  • OTLP 내보내기, 자동 수집 파이프라인 또는 자세한 추적 및 진단 로그를 대체합니다.
  • 페이로드에 이벤트 ID가 포함되어 있기 때문에 정확히 한 번만 전달됩니다.
  • 원시 공급자 페이로드, 사용자 콘텐츠, 자격 증명 또는 규제 데이터를 수집할 수 있는 권한입니다.

이벤트 스키마 시작점

쿼리 또는 스니펫을 프로덕션에 적용하기 전에 행 그레인, 방출 경계, 필수 유형, 개인 정보 보호 클래스, 예제 페이로드 및 유효성 검사 체크리스트를 검토하세요.

관련 제품 기능

이 워크플로를 다음에서 계속하세요. 알림

검토된 신뢰성 쿼리를 소유한 임계값 및 응답 워크플로로 승격합니다.

관련 SQL 레시피

SQL로 다음 질문에 답하세요

이 워크플로의 구조화된 필드에 대해 쿼리를 실행하고, 예제 결과를 검사하고, 유용한 답변을 대시보드 또는 알림으로 전환하세요.

모든 레시피 찾아보기
완전한 컬렉션API 신뢰성 SQL

구현 제품군별로 찾아보기

관련 통합 패턴 비교

이 통합과 페어링할 템플릿

더 많은 통합