
Sumo Logic의 로그 분석 기능은 항상 환경을 보호하고 모니터링하며 문제를 해결하는 데 도움이 되는 최고의 인사이트를 제공해 왔습니다. 이제 Query Agent를 Dojo AI의 일부로 사용하면 자연어를 이용해 최적화된 로그 검색을 더욱 쉽게 생성할 수 있습니다.
Query Agent는 구문 분석, 집계, 데이터 변환, 필터링, 고급 분석 및 조회를 위해 join 연산자를 포함한 다양한 연산자와 함께 작동합니다. join 연산자는 SQL JOIN의 핵심 기능을 비정형 데이터 스트림에 적용하여 더 높은 유연성을 제공합니다.
join 연산자란 무엇인가요?
표준 관계형 조인에서는 조인할 테이블의 데이터 세트가 쿼리 시점에 고정됩니다. 하지만 검색 기간 내에서 서로 다른 날짜의 로그 메시지에서 ID를 일치시키면 잘못된 결과가 나올 가능성이 높습니다. 어제 수행된 작업은 오늘 발생한 로그인 이벤트와 연결되어서는 안 되기 때문입니다.
이러한 이유로, 당사의 join 연산자는 로그 메시지를 조인하기 위한 지정된 이동 시간 범위를 제공합니다.
아래 다이어그램에서 분홍색과 주황색은 서로 다른 로그 메시지의 두 스트림을 나타냅니다. 두 스트림 모두 일치시키고자 하는 키/값 쌍을 포함하고 있으며, 두 메시지가 검은색 상자로 표시된 시간 범위 내에 모두 발생할 경우 해당 키/값을 기준으로 메시지가 조인됩니다.

조인 연산자의 실제 활용
이제 이것을 실제로 활용해 봅시다. 어떤 애플리케이션에 실제 사용자와 기계가 제어하는 사용자(기계 제어 사용자)가 모두 있다고 가정해 봅시다. 어떤 사용자가 실제 사용자이고 어떤 사용자가 기계 제어 사용자인지 알아야, 성능에 영향을 줄 수 있는 기계 제어 사용자를 감시할 수 있습니다.
알고 보니 사람 사용자는 비교적 낮은 속도로 요청을 생성하는 반면, 기계 제어 사용자(API를 통해 접근하는 사용자)는 초당 여러 개의 요청을 생성할 수 있으며, 항상 로그인 이벤트 직후에 요청을 발생시킵니다.
이 로그에는 다양한 목적과 값을 가진 여러 메시지가 들어옵니다. join 연산자를 사용하면 로그인 이벤트와 요청 이벤트를 모두 쿼리한 다음, 일치 로직의 시간 범위를 제한하여 두 메시지 스트림을 결합할 수 있습니다. 내 검색의 두 하위 쿼리는 각각 요청/쿼리 이벤트와 로그인 이벤트를 찾습니다.
일치 창은 로그인 이벤트에 매우 근접하게 발생하는 요청을 식별하기 위해 15초로 제한됩니다. 그런 다음 로그인 후 15초 동안 10회 미만의 요청을 한 사용자를 필터링할 수 있습니다. 그 결과, 로그인 직후 API를 통해 대량의 요청을 활발하게 보내는 사용자를 명확하게 파악할 수 있습니다.
다음은 예시 쿼리입니다.
(login or (creating query)) | join (parse "Creating query: '*'" as query, "auth=User:*:" as user) as query, (parse "Login success for: '*'" as user) as login on query.user = login.user timewindow 15s | count by query_user | where _count > 10 | sort _count
위 구문에서 볼 수 있듯이 하위 쿼리는 표준 로그 검색과 동일한 구문을 사용하며 집계(개수, 합계, 평균 등)도 지원하므로 복잡한 결과를 결합하여 필요한 인사이트를 얻을 수 있습니다.
또한 Sumo Logic은 두 개 이상의 로그 스트림을 결합하는 것을 지원하므로 원하는 모든 데이터를 하나의 쿼리로 결합할 수 있습니다.
Dojo AI Query Agent란 무엇인가요?
올바른 구문, 시간 범위 및 매칭 로직을 사용해 조인 쿼리를 작성하는 일은, 특히 여러 로그 스트림을 다룰 때 까다로울 수 있습니다. 쿼리 에이전트는 이 과정을 더 쉽게 해 줍니다.
Dojo AI 에이전트 팀의 일부인 쿼리 에이전트는 Mobot을 통해 액세스할 수 있으며, 자연어 질문을 Sumo Logic 로그 검색 쿼리로 변환해 프롬프트 한 번으로 최적화된 쿼리를 생성할 수 있도록 지원합니다.
다음 예는 사용자가 Mobot에서 쿼리 에이전트에 조인 명령을 생성하도록 프롬프트하는 방법을 보여 주며, 이를 통해 검색에 필요한 로그를 쉽게 조인할 수 있습니다. 아래 스크린샷에서 사용자는 쿼리 에이전트에게 서비스의 changelog 로그를 애플리케이션 로그와 연결해 상태 코드를 확인하도록 요청합니다.

쿼리 에이전트는 결과를 표시하는 것 외에도 조인이 사용되었음을 나타내고, 지연 시간과 같은 주요 관찰 항목을 보여 줍니다. 또한 정확한 검색 명령어를 제공하며, 이 명령어는 로그 검색 캔버스에서 쉽게 사용하거나 수정할 수 있습니다. 쿼리를 더 잘 이해할 수 있도록, 쿼리 에이전트는 검색의 주요 구성 요소와 이들이 서로 어떻게 연결되는지에 대한 명확한 설명을 함께 제공합니다.

마지막 요약
join 연산자를 사용하면 SQL 내부 조인과 유사하게 작동하여 두 개 이상의 데이터 스트림의 레코드를 단일 결과 집합으로 동적으로 결합할 수 있습니다. 또한 join 연산자를 포함한 다른 연산자들도 Dojo AI 에이전트로 강화되었습니다.
Dojo AI가 환경을 모니터링하고 문제를 해결하며 보안을 강화하는 데 어떻게 도움이 되는지 알아보세요. 실제 동작을 확인해 보세요.



