GraphQL 로그 읽기
우리는 GraphQL 쿼리 로그를 필터링하기 위해 Kibana를 사용합니다. @gitlab.com 이메일 주소로 Kibana에 로그인하세요.
Kibana에서는 두 가지 유형의 GraphQL 로그를 검토할 수 있습니다:
- 요청 내에서 실행된 각 GraphQL 쿼리의 로그입니다.
 - 쿼리 멀티플렉싱으로 인해 실행된 여러 쿼리가 포함된 전체 요청의 로그입니다.
 
각 GraphQL 쿼리의 로그
multiplex 쿼리에서 각 개별 쿼리는 별도로 로깅됩니다. 이러한 로그를 검토하기 위해 서브컴포넌트 필터링을 사용할 수 있습니다. 이 필터가 사용된 Kibana로 이동하거나 다음 단계를 사용하여 서브컴포넌트 필터를 설정할 수 있습니다:
- 필터 추가:
- 필터: 
json.subcomponent - 연산자: 
is - 값: 
graphql_json 
 - 필터: 
 - 새로 고침을 선택합니다.
 
사이드바의 사용 가능한 필드 섹션에서 Kibana 필드를 선택하여 로그 테이블에 열을 추가하거나 이 뷰를 방문하여 이미 선택된 Kibana 필드 세트를 확인할 수 있습니다. 일부 관련된 Kibana 필드는 다음과 같습니다:
| Kibana 필드 | 설명 | 
|---|---|
json.operation_name
 | 클라이언트가 사용한 operation name. | 
json.operation_fingerprint
 | 쿼리의 지문, 시간에 따른 반복된 쿼리를 인식하는 데 사용됨. | 
json.meta.caller_id
 | GitLab 프론트엔드에서 온 쿼리의 경우 graphql:<operation_name>로 나타나며, 그 외 경우에는 graphql:unknown으로 나타납니다. 내부 대 외부 쿼리를 식별하는 데 사용할 수 있습니다.
 | 
json.query_string
 | 쿼리 문자열 그 자체입니다. | 
json.is_mutation
 | 변이 시 true, 그 외에는 false.
 | 
json.query_analysis.used_fields
 | 쿼리에서 선택된 GraphQL 필드의 디렉터리입니다. | 
json.query_analysis.used_deprecated_fields
 | 쿼리에서 선택된 폐기된 GraphQL 필드의 디렉터리입니다. | 
json.query_analysis.duration_s
 | 쿼리 실행의 지속 시간(초)입니다. | 
json.query_analysis.complexity
 | 쿼리의 복잡성 점수입니다. | 
유용한 필터
각 GraphQL 쿼리의 로그와 다음 Kibana 필터를 결합하여 쿼리 로그를 더 자세히 조사할 수 있습니다.
특정 필드를 사용한 쿼리
특정 필드를 사용한 쿼리의 로그를 필터링합니다:
- 필터 추가:
- 필터: 
json.query_analysis.used_fields - 연산자: 
is - 값: 
Type.myField, 여기서Type.myField는 우리의 GraphQL API 리소스 문서에 나타난 타입 이름과 필드 이름입니다. 
 - 필터: 
 - 새로 고침을 선택합니다.
 
폐기된 필드를 사용한 쿼리
폐기된 필드를 사용한 쿼리 로그를 위의 단계를 따라하지만 대신 json.graphql.used_deprecated_fields 필터를 사용합니다.
전체 요청의 로그
전체 요청 로그는 요청의 모든 멀티플렉스된 쿼리에 대한 로그 데이터뿐만 아니라 GraphQLController#execute의 외부에서 소요된 시간에 대한 데이터를 포함합니다.
전체 요청 로그를 확인하려면 각 GraphQL 쿼리의 로그에서 json.subcomponent 필터를 적용하지 말고 다음을 수행합니다:
- 필터 추가:
- 필터: 
json.meta.caller_id - 연산자: 
is - 값: 
GraphqlController#execute 
 - 필터: 
 - 새로 고침을 선택합니다.
 
위의 쿼리 로그와의 차이점:
- 위에서 언급된 Kibana 필드 중 일부는 전체 요청 로그에서 사용할 수 없습니다.
 - 필터 이름이 다릅니다. 예를 들어, 
json.query_analysis.used_fields대신json.graphql.used_fields를 선택합니다. 
도움말