appStats 개요
appStats API는 애플리케이션 분석 화면을 기반으로 하며, 시간 범위에 따라 소스, 목적지, 애플리케이션 등을 기준으로 집계된 네트워크 데이터를 제공합니다.
각 쿼리는 주어진 집계 함수(합계, 최대값, 평균 등)와 다른 차원(사이트 이름, 사용자, 애플리케이션 등)에 대해 다양한 측정 가격(업로드 바이트, 다운로드 바이트, 흐름 수 등)의 집계를 계산합니다.
appStats 쿼리 사용 예시:
특정 사이트의 총/평균/최대 대역폭 계산
특정 목적지로 생성된 최대 흐름 수
특정 호스트에 의해 사용된 상위 10개 애플리케이션
appStats 인수
다음은 쿼리가 반환하는 데이터를 정의할 수 있는 인수들입니다(모든 필드는 필수입니다):
계정 ID
측정값
필터
차원
정렬
기간
appStats 계정 ID 인수
쿼리가 반환하는 데이터에 대해 하나 이상의 계정 ID를 입력하십시오.
이 계정 ID는 Cato 관리 애플리케이션에 표시되지 않으며, 대신 Cato 관리 애플리케이션의 URL에 있는 숫자입니다. 예를 들어 다음 URL의 계정 ID는 26입니다: https://cc.catonetworks.com/#!/26/topology.
appStats 필터 인수
필터 인수는 쿼리에 포함된 특정 데이터를 정의할 수 있습니다. 다음은 정의할 수 있는 인수들입니다:
fieldName - 필터링할 필드 유형을 정의합니다(자세한 내용은 아래의 appStats 필드 참조)
operator - 데이터를 필터링할 값을 활성화하는 방법을 정의합니다(자세한 내용은 아래의 appStats filterOperator 참조)
values - operator와 함께 사용되는 필터 값을 정의합니다.
다음 필터 구문은 특정 애플리케이션에 대한 데이터를 표시하도록 필터링된 쿼리 예시입니다:
"필터": [
{
"fieldName": "애플리케이션",
"operator": "같습니다",
"값": [
"Slack"
]
}
]appStats 차원 인수
차원 매개변수를 사용하여 동일한 값을 가진 필드를 요약 행으로 그룹화하십시오.
다음 예시는 사이트 이름에 따라 필드를 그룹화합니다:
"차원": [
{
"fieldName": "사이트 이름"
}
]appStats 측정 인수
측정 값 인수는 쿼리가 반환하고자 하는 필드와 그 집계 유형을 정의할 수 있습니다. 다음은 정의할 수 있는 인수들입니다:
fieldName - 필터링할 필드 유형을 정의합니다(자세한 내용은 아래의 appStats 필드 참조)
aggType - 집계 유형을 정의합니다(자세한 내용은 아래의 appStats Aggregation 참조)
다음 예시는 Slack 애플리케이션에서 생성된 흐름의 요약을 측정하는 쿼리의 측정 값 구문을 보여줍니다:
"필터": [
{
"fieldName": "애플리케이션",
"operator": "같습니다",
"값": [
"Slack"
]
}
]
"측정 값": [
{
"fieldName": "생성된 흐름",
"aggType": "sum"
}
]
appStats 정렬 인수
정렬 인수는 데이터가 정렬되는 방법을 정의합니다.
다음 예시는 Slack 애플리케이션에서 생성된 흐름의 요약을 측정하는 쿼리의 정렬 구문을 보여줍니다. 그런 다음 생성된 흐름의 내림차순 순서로 데이터를 정렬합니다:
"필터": [
{
"fieldName": "애플리케이션",
"operator": "같습니다",
"값": [
"Slack"
]
}
]
"측정 값": [
{
"fieldName": "생성된 흐름",
"aggType": "sum"
}
]
"정렬": [
{
"fieldName": "생성된 흐름",
"주문": "dec"
}
]
appStarts 기간 인수
쿼리의 기간을 정의합니다.
"기간": "마지막 P2D"샘플 appStats 쿼리
다음은 각 사이트에 대해 Slack 애플리케이션의 생성된 흐름의 합계를 반환하는 appStats API 쿼리 사용 예시입니다. 시간이 경과되면서 변경됩니다. 데이터는 상위 5개 사이트에 대해 내림차순으로 정렬됩니다.
샘플 쿼리
쿼리 appStats($accountID: ID!, $measures: [Measure], $dimensions: [Dimension], $filters: [AppStatsFilter!], $sort: [AppStatsSort!], $timeFrame: TimeFrame!, $limit: Int, $from: Int) {
appStats(
accountID: $accountID
timeFrame: $timeFrame
measures: $measures
dimensions: $dimensions
filters: $filters
sort: $sort
) {
id
records(limit: $limit, from: $from) {
fieldsUnitTypes
fieldsMap
trends
}
}
}
변수 값
{
"accountID": "1234",
"차원": [
{
"fieldName": "사이트 이름"
}
],
"측정 값": [
{
"fieldName": "생성된 흐름",
"aggType": "sum"
}
],
"필터": [
{
"fieldName": "애플리케이션",
"operator": "같습니다",
"값": [
"Slack"
]
}
]
"정렬": [
{
"fieldName": "생성된 흐름",
"주문": "desc"
}
],
"기간": "마지막 P2D",
"limit": 5,
"from": 0
}
샘플 AppStats 출력
{
"데이터": {
"appStats": {
"id": "1234",
"레코드": [
{
"fieldsMap": {
"생성된 흐름": "116660",
"사이트 이름": "샘플 소켓"
}
},
{
"fieldsMap": {
"생성된 흐름": "105655",
"사이트 이름": "샘플 소켓 2"
}
}
]
}
}
}appStats 필드
이것은 appStats 쿼리의 필드에 대한 설명입니다.
항목 | 설명 |
|---|---|
애플리케이션 | 클라우드 애플리케이션 이름 |
새로운 앱 | 새 클라우드 애플리케이션 식별자 |
발견된 앱 | 사용된 앱의 총 수 |
트래픽 | 업스트림 및 다운스트림 데이터의 바이트 총합 |
upstream | 클라우드 애플리케이션에 업로드된 데이터 |
downstream | 클라우드 애플리케이션에서 다운로드된 데이터 |
위험 점수 | 카토에서 할당한 애플리케이션 위험 점수 |
위험 수준 | 애플리케이션의 위험 수준 |
승인됨 | 조직에서 승인된 클라우드 애플리케이션 |
본사 위치 | 등록된 애플리케이션 본사가 위치한 국가 |
클라우드 앱 여부 | 애플리케이션이 클라우드 앱/SaaS 앱으로 간주되는지 여부를 나타냅니다. |
카테고리 | 클라우드 애플리케이션 카테고리 |
설명 | 카테고리 설명 |
IP | 호스트 또는 SDP 클라이언트의 IP |
서브넷 | 서브넷의 이름 |
도메인 | SSL SNI, HTTP 호스트 이름, DNS 이름, 또는 목적지 IP |
서버 IP 주소(광역 네트워크 연결에만 관련됨) | |
소스 사이트 ID | 사이트에 대한 고유 내부 카토 ID |
src_site_name | 소스 사이트 또는 SDP 사용자 |
사이트 국가 | 사이트가 위치한 국가 |
사이트 상태 | 사이트가 위치한 상태 |
VPN 사용자 ID | SDP 사용자에 대한 고유 내부 카토 ID |
생성된 흐름 | 생성된 연결 수 |
목적지 사이트 | 목적지 사이트 또는 SDP 사용자 ID (프로토) |
목적지 사이트 여부 또는 VPN | 목적지 사이트 또는 SDP 사용자 |
목적지 사이트 ID | 목적지 사이트 또는 SDP 사용자 ID (DB) |
dest_site_name | 목적지 사이트 또는 SDP 사용자 이름 |
traffic_direction | 트래픽 방향 |
device_name | PC 또는 장치 이름 |
ad_name | Active Directory 이름 |
호스트 또는 SDP 클라이언트의 IP | |
socket_interface | 소켓 인터페이스의 이름 |
src_is_site_or_vpn | 트래픽은 사이트 또는 SDP 클라이언트 |
appStats 집계
다음은 appStats aggType의 값입니다:
sum
count
count_distinct
distinct
avg
max
min
any
appStats filterOperator
다음은 appStats filterOperator의 값입니다:
is
is_not
in
not_in
exists
not_exists
between
not_between
gt
gte
lt
lte