뉴렐릭의 eBPF 에이전트는 eBPF APM에 사용하는 것과 동일한 제로 코드, 언어에 구애받지 않는 접근 방식을 스택의 AI 계층으로 확장합니다. 에이전트가 설치되면 Linux 커널에서 직접 서비스가 LLM 제공업체에 수행하는 아웃바운드 호출을 자동으로 감지하고, SDK, 코드 변경 또는 전용 AI 모니터링 에이전트 없이 생성형 AI 성능, 비용 및 안정성 텔레메트리를 보고합니다.
이 텔레메트리는 이미 APM, 네트워크 및 로그 데이터를 보고하는 동일한 자동 검색된 eBPF 엔티티에 나타나며, AI 사용량과 함께 서비스 상태에 대한 단일 통합 뷰를 제공합니다. 이는 존재를 몰랐던 생성형 AI 워크로드를 발견하는 데 특히 유용합니다: 타사 서비스, 구형 애플리케이션 또는 LLM 공급업체를 조용히 호출하는 소유하지 않은 코드.
주요 특징들
제로 코드 생성형 AI 감지: SDK, 래퍼 라이브러리 또는 코드 변경 없이 커널 수준에서 LLM 제공업체(예: OpenAI, Azure OpenAI 및 Amazon Bedrock)에 대한 아웃바운드 호출을 자동으로 검색합니다.
eBPF APM과 원활하게 작동: eBPF 에이전트와 함께 제공되므로 생성형 AI 텔레메트리 수집을 시작하기 위해 별도의 에이전트를 배포하거나 관리할 필요가 없습니다. eBPF AI 워크로드 모니터링을 활성화/비활성화할 수 있는 옵션이 있습니다(기본값은 꺼짐).
자동 감지 및 백오프: 언어 APM 에이전트가 이미 계측되어 동일한 서비스에 대한 AI 모니터링 데이터를 보고하는 경우 자체 AI 텔레메트리를 억제하여 중복 데이터를 방지합니다. 이는 eBPF 에이전트가 APM, 네트워크 및 로그 데이터에 이미 사용하는 것과 동일한 패턴입니다.
선택적 프롬프트 및 응답 캡처: 활성화되면 에이전트는 모델, 공급업체, 토큰 사용량, 지연시간 및 오류와 같은 생성형 AI 메타데이터만 캡처합니다. 별도의 설정을 통해 디버깅이나 품질 검토를 위해 필요할 때 전체 프롬프트 및 완료 콘텐츠를 추가로 캡처할 수 있습니다.
통합 엔티티 뷰: 생성형 AI 텔레메트리는 eBPF APM, 네트워크 메트릭 및 로그 데이터와 동일한 엔티티에 표시되므로 서비스의 동작을 이해하기 위해 여러 엔티티에 걸쳐 상관관계를 분석할 필요가 없습니다.
지원되는 LLM 제공업체
eBPF AI 모니터링은 현재 다음 LLM 제공업체에 대한 아웃바운드 호출을 감지하고 보고합니다.
- Google Gemini
- 오픈AI
- 인류애적인 클로드
- 아마존 기반암
감지는 서비스가 이러한 제공업체의 API에 수행하는 HTTP 호출을 기반으로 커널 수준에서 발생하므로 공급업체 SDK나 클라이언트 라이브러리가 필요하지 않습니다. 다른 제공업체에 대한 호출은 생성형 AI 텔레메트리로 보고되지 않습니다.
사용 사례
플랫폼 엔지니어용: 소유하지 않거나 AI가 활성화된 줄 몰랐던 서비스를 포함하여 LLM 제공업체를 호출하는 환경의 모든 서비스 인벤토리를 가져옵니다.
불투명하거나 서드파티 워크로드가 있는 팀의 경우: 직접 계측할 수 없는 구형 애플리케이션 또는 벤더 바이너리에 대한 생성형 AI 사용량, 비용 및 지연시간을 모니터링하십시오.
AI 비용 및 성능 감독을 위해: 더 심층적인 코드 레벨 AI 모니터링 계측에 투자할 곳을 결정하기 전에 전체 환경에서 토큰 사용량이 많거나 응답이 느린 생성형 AI 호출을 식별하십시오.
보안 및 규정 준수 가시성 확보: 어떤 서비스가 외부 AI 제공업체에 데이터를 전송하는지 파악하여 난독화 또는 삭제 규칙을 적용할 위치를 결정할 수 있습니다. 아래의 민감한 데이터 및 eBPF AI 모니터링을 참조하십시오.
eBPF AI 모니터링 활성화
이 기능은 기본적으로 꺼져 있지만, 안내 설치 흐름에서 또는 에이전트 설정을 직접 편집하여 전체 프롬프트 및 응답 콘텐츠를 캡처하는 별도의 제어 기능과 함께 쉽게 활성화할 수 있습니다.
안내 설치
Linux 호스트 및 Kubernetes 안내 설치 흐름에는 모두 AI 모니터링을 위한 두 가지 스위치가 포함되어 있습니다:
- Enable eBPF AI Monitoring: 생성형 AI 워크로드 모니터링을 켭니다. 기본적으로 비활성화되어 있습니다.
- Enable recording model inputs and outputs: 생성형 AI 상호작용에 대한 전체 메시지 콘텐츠(프롬프트 및 완료)를 캡처합니다. 기본적으로 비활성화되어 있으며 Enable eBPF AI Monitoring이(가) 켜져 있어야만 사용할 수 있습니다. 실제 프롬프트 및 응답 텍스트를 뉴렐릭으로 전송하므로 주의해서 사용하십시오.
중요
뉴렐릭은 언어 APM 에이전트를 감지하면 eBPF AI 모니터링을 자동으로 비활성화하여 APM 에이전트 자체의 AI 모니터링 계측이 이미 보고한 텔레메트리가 중복되지 않도록 합니다.
수동으로 구성하십시오
안내 설치를 사용하지 않는 경우 에이전트 설정에서 다음 파라미터를 설정하십시오:
ai_monitoring.enabled: 생성형 AI 텔레메트리 보고를 제어합니다. 허용되는 값:"true"(항상 전송),"false"(전송 안 함),"auto"(언어 APM 또는 OTel 에이전트가 엔티티에 대한 AI 모니터링 데이터를 아직 보고하지 않은 경우에만 전송).ai_monitoring.genAICaptureMessageContent:true인 경우 생성형 AI 상호작용에 대한 전체 프롬프트 및 완료 콘텐츠를 캡처합니다.ai_monitoring.enabled이(가)true또는auto인 경우에만 적용됩니다. 주의해서 사용하십시오.
설치 스크립트를 사용하는 Linux 호스트에서는 대신 동등한 ai_monitoring.enabled 및 ai_monitoring.genAICaptureMessageContent 환경 변수를 설정하십시오. 이는 reportApmData, reportNetworkMetrics 및 reportLogs에서 이미 사용 중인 패턴을 반영합니다. 전체 파라미터 목록은 Linux 설치 또는 Kubernetes 설치 가이드의 설정 파라미터 섹션을 참조하십시오.
eBPF AI 모니터링 데이터 확인
뉴렐릭 APM UI에서 eBPF AI 모니터링 데이터를 확인할 수 있습니다:
- one.newrelic.com > APM & Services 으)로 이동합니다.
- LLM 제공업체를 호출하는 서비스의 eBPF 엔티티를 선택하십시오.
- 왼쪽 탐색에서 AI monitoring을(를) 클릭한 다음 AI traces을(를) 선택하십시오.
팁
eBPF 에이전트는 사용자 환경에 따라 엔티티 이름을 자동으로 생성합니다.
호스트 또는 도커에서 이름은 프로세스 이름, 디렉터리 경로 또는 디렉터리 ID 및 수신 포트를 결합합니다. 예시:
ruby:/home/ubuntu/app:[5678]또는java:f4aead533895:[8080]Kubernetes에서 이름은 서비스 이름에서 파생됩니다. 예를 들어 다음과 같습니다.
mysql-database-serviceeBPF 에이전트가 수집한 속성 목록을 보려면 eBPF 에이전트 속성 참조를 참조하십시오.
민감한 데이터 및 eBPF AI 모니터링
중요
eBPF AI 모니터링은 자체적으로 민감한 데이터를 난독화, 마스크 또는 삭제하지 않습니다. 설계상 네트워크에서 관찰한 내용을 정확하게 보고합니다.
Enable recording model inputs and outputs을(를) 꺼두면(기본값) 에이전트는 프롬프트나 완료 콘텐츠를 캡처하지 않고 모델, 공급업체, 토큰 수 및 지연시간과 같은 메타데이터만 캡처합니다. 이렇게 하면 애초에 민감한 프롬프트나 응답 텍스트를 뉴렐릭으로 보내는 것을 방지할 수 있습니다.
디버깅 또는 품질 검토를 위해 해당 콘텐츠가 필요하여 기록을 켜는 경우, 민감한 정보에 대한 데이터 난독화 및 삭제는 OpenTelemetry Transformation Language(OTTL)를 사용하는 파이프라인 컨트롤 게이트웨이(PCG)를 통해서만 사용할 수 있습니다. 직접적인 eBPF-뉴렐릭 데이터 흐름에는 AI 모니터링 데이터에 대한 내장된 난독화가 포함되어 있지 않습니다. 주문에 PCG를 추가하려면 계정 담당자에게 문의하십시오.
예를 들어, 이 설정은 생성형 AI 상호작용에서 캡처된 완료 콘텐츠를 수정합니다(eBPF 에이전트가 보고하는 내용과 일치하도록 속성 이름을 조정하십시오. 정확한 속성 이름은 eBPF 에이전트 속성 참조를 확인해 주십시오):
transform/Traces: trace_statements: - statements: - replace_pattern(attributes["gen_ai.completion"], ".+", "***REDACTED***") conditions: - attributes["gen_ai.completion"] != nil이 예제는 표시된 완료 속성만 마스킹합니다. 프롬프트 콘텐츠, 특정 모델 공급업체 또는 기타 속성에 대한 규칙을 포함하여 추가적이거나 사용자 정의 가능한 난독화 및 삭제 규칙의 경우 PCG에서 직접 지원하는 OTTL Transform 프로세서를 설정하십시오. 더 많은 예제는 PII 수정 을 참조하십시오.