부울, 비교, 숫자, 날짜/시간 및 기타 함수 - Amazon CloudWatch Logs

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

부울, 비교, 숫자, 날짜/시간 및 기타 함수

CloudWatch Logs Insights는 다음 섹션에 설명된 대로 쿼리에서 다른 많은 작업 및 함수를 지원합니다.

산술 연산자

산술 연산자에서는 숫자 데이터 형식을 인수로 수락하고 숫자 결과를 반환합니다. 산술 연산자를 filterfields 명령에서 사용하고 다른 함수의 인수로 사용합니다.

Operation 설명

a + b

Addition

a - b

뺄셈

a * b

곱셈

a / b

나눗셈

a ^ b

거듭제곱(2 ^ 3에서 8 반환)

a % b

나머지 또는 모듈러스(10 % 3에서 1 반환)

부울 연산

부울 연산자 and, ornot을 사용합니다.

참고

부울 연산자는 TRUE 또는 값을 반환하는 함수에서만 사용합니다FALSE.

비교 연산자

비교 연산자에서는 모든 데이터 형식을 인수로 수락하고 부울 결과를 반환합니다. 비교 연산은 filter 명령에서 사용하고 다른 함수의 인수로 사용합니다.

연산자 설명

=

같음

!=

같지 않음

<

보다 작음

>

보다 큼

<=

작거나 같음

>=

크거나 같음

숫자 연산자

숫자 연산은 숫자 데이터 형식을 인수로 수락하고 숫자 결과를 반환합니다. 숫자 연산은 filterfields 명령에서 사용하고 다른 함수의 인수로 사용합니다.

Operation 결과 유형 설명

abs(a: number)

number

절대값

ceil(a: number)

number

천장값으로 반올림(a의 값보다 큰 수 중 가장 작은 정수)

floor(a: number)

number

바닥값으로 반올림(a 값보다 작은 수 중 가장 큰 정수)

greatest(a: number, ...numbers: number[])

number

가장 큰 값 반환

least(a: number, ...numbers: number[])

number

가장 작은 값 반환

log(a: number)

number

자연 로그

sqrt(a: number)

number

제곱근

날짜/시간 함수

날짜/시간 함수

날짜/시간 함수를 fieldsfilter 명령에서 사용하고 다른 함수의 인수로 사용합니다. 이러한 함수를 사용하여 집계 함수가 포함된 쿼리에 대한 시간 버킷을 생성합니다. 숫자와 다음 중 하나로 구성된 기간을 사용합니다.

  • ms - 밀리초

  • s - 초

  • m - 분

  • h - 시간

예를 들어, 10m은 10분을, 1h는 1시간을 나타냅니다.

참고

datetime 함수에 가장 적합한 시간 단위를 사용합니다. CloudWatch 선택한 시간 단위에 따라 요청의 한도를 기록합니다. 예를 들어 CloudWatch Logs는 s를 사용하는 모든 요청의 최대값을 60으로 한정합니다. 따라서 bin(300s)를 지정하면 CloudWatch 로그는 실제로 이를 60초로 구현합니다. 왜냐하면 60은 분당 초 수이므로 CloudWatch 로그는 에서 60보다 큰 숫자를 사용하지 않기 때문입니다s. 5분 버킷을 생성하려면 bin(5m)을 대신 사용하세요.

ms의 한도는 1000이고, sm의 한도는 60이며, h의 한도는 24입니다.

다음 표에는 쿼리 명령에 사용할 수 있는 다양한 날짜 시간 함수의 목록이 포함되어 있습니다. 이 표에는 각 함수의 결과 유형이 나열되며 각 함수에 대한 설명이 포함되어 있습니다.

작은 정보

쿼리 명령을 생성할 때 시간 간격 선택기를 사용하여 쿼리할 기간을 선택할 수 있습니다. 예를 들어, 5~30분 간격, 1, 3, 12시간 간격 또는 사용자 지정 시간 범위 중에서 설정할 수 있습니다. 특정 날짜 사이의 기간을 설정할 수도 있습니다.

함수 결과 유형 설명

bin(period: Period)

Timestamp

@timestamp 값을 지정한 기간으로 반올림한 다음 자릅니다. 예를 들어, bin(5m)은(는) @timestamp 값을 가장 가까운 5분 단위로 반올림합니다.

이를 사용하여 쿼리에서 여러 로그 항목을 함께 그룹화할 수 있습니다. 다음 예제에서는 시간당 발생한 예외 수를 반환합니다.

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

bin 함수에서는 다음과 같은 시간 단위 및 약어가 지원됩니다. 둘 이상의 문자를 포함하는 모든 단위 및 약어의 경우 s를 추가하여 복수화할 수 있습니다. 따라서 hrhrs 모두 시간을 지정하는 데 사용됩니다.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

datefloor(timestamp: Timestamp, period: Period)

Timestamp

타임스탬프를 지정한 기간으로 자릅니다. 예를 들어, datefloor(@timestamp, 1h)@timestamp의 모든 값을 해당 시간 아래로 자릅니다.

dateceil(timestamp: Timestamp, period: Period)

Timestamp

타임스탬프를 지정한 기간으로 반올림한 다음 자릅니다. 예를 들어, dateceil(@timestamp, 1h)@timestamp의 모든 값을 해당 시간 위로 자릅니다.

fromMillis(fieldName: number)

Timestamp

입력 필드를 Unix Epoch 밀리초로 해석하여 타임스탬프로 변환합니다.

toMillis(fieldName: Timestamp)

number

지정된 필드에 있는 타임스탬프를 Unix Epoch 밀리초를 나타내는 숫자로 변환합니다. 예를 들어 toMillis(@timestamp)는 타임스탬프를 2022-01-14T13:18:031.000-08:00에서 1642195111000으로 변환합니다.

참고

현재 CloudWatch Logs Insights는 사람이 읽을 수 있는 타임스탬프가 있는 로그 필터링을 지원하지 않습니다.

일반 함수

일반 함수

일반 함수를 fieldsfilter 명령에서 사용하고 다른 함수의 인수로 사용합니다.

함수 결과 유형 설명

ispresent(fieldName: LogField)

이 필드가 존재하는 경우 true 반환

coalesce(fieldName: LogField, ...fieldNames: LogField[])

LogField

목록에서 null이 아닌 첫 번째 값 반환

IP 주소 문자열 함수

IP 주소 문자열 함수

IP 주소 문자열 함수를 filterfields 명령에서 사용하고 다른 함수의 인수로 사용합니다.

함수 결과 유형 설명

isValidIp(fieldName: string)

boolean

필드가 유효한 IPv4 주소 또는 IPv6 주소인 true 경우 반환됩니다.

isValidIpV4(fieldName: string)

boolean

필드가 유효한 IPv4 주소인 true 경우 를 반환합니다.

isValidIpV6(fieldName: string)

boolean

필드가 유효한 IPv6 주소인 true 경우 를 반환합니다.

isIpInSubnet(fieldName: string, subnet: string)

boolean

필드가 지정된 v4 또는 v6 서브넷 내의 유효한 IPv4 주소이거나 IPv6 주소인 true 경우 를 반환합니다. 서브넷을 지정할 때 192.0.2.0/24 또는 와 같은 CIDR 표기법을 사용합니다. 2001:db8::/32여기서 192.0.2.0 또는 2001:db8::는 CIDR 블록의 시작입니다.

isIpv4InSubnet(fieldName: string, subnet: string)

boolean

필드가 지정된 v4 서브넷 내의 유효한 IPv4 주소인 true 경우 반환됩니다. 서브넷을 지정할 때는 192.0.2.0가 CIDR 블록의 시작인 192.0.2.0/24 경우와 같은 CIDR 표기법을 사용합니다.

isIpv6InSubnet(fieldName: string, subnet: string)

boolean

필드가 지정된 v6 서브넷 내의 유효한 IPv6 주소인 true 경우 반환됩니다. 서브넷을 지정할 때는 2001:db8::가 CIDR 블록의 시작인 2001:db8::/32 경우와 같은 CIDR 표기법을 사용합니다.

문자열 함수

문자열 함수

문자열 함수를 fieldsfilter 명령에서 사용하고 다른 함수의 인수로 사용합니다.

함수 결과 유형 설명

isempty(fieldName: string)

숫자

필드가 누락되어 있거나 빈 문자열일 경우 1를 반환합니다.

isblank(fieldName: string)

숫자

필드가 누락되어 있거나 빈 문자열이거나 빈 공백만 포함된 경우 1를 반환합니다.

concat(str: string, ...strings: string[])

문자열

문자열을 연결합니다.

ltrim(str: string)

ltrim(str: string, trimChars: string)

문자열

함수에 두 번째 인수가 없는 경우에는 문자열의 왼쪽에서 공백을 제거합니다. 함수에 두 번째 문자열 인수가 없는 경우에는 공백을 제거하지 않습니다. 대신 str의 왼쪽에서 trimChars의 문자를 제거합니다. 예를 들어, ltrim("xyZxyfooxyZ","xyZ")"fooxyZ"를 반환합니다.

rtrim(str: string)

rtrim(str: string, trimChars: string)

문자열

함수에 두 번째 인수가 없는 경우에는 문자열의 오른쪽에서 공백을 제거합니다. 함수에 두 번째 문자열 인수가 없는 경우에는 공백을 제거하지 않습니다. 대신 str의 오른쪽에서 trimChars의 문자를 제거합니다. 예를 들어, rtrim("xyZfooxyxyZ","xyZ")"xyZfoo"를 반환합니다.

trim(str: string)

trim(str: string, trimChars: string)

문자열

함수에 두 번째 인수가 없는 경우에는 문자열의 양쪽 끝에서 공백을 제거합니다. 함수에 두 번째 문자열 인수가 없는 경우에는 공백을 제거하지 않습니다. 대신 str의 양쪽에서 trimChars의 문자를 제거합니다. 예를 들어, trim("xyZxyfooxyxyZ","xyZ")"foo"를 반환합니다.

strlen(str: string)

number

문자열 길이를 Unicode 코드 포인트로 반환합니다.

toupper(str: string)

문자열

문자열을 대문자로 변환합니다.

tolower(str: string)

문자열

문자열을 소문자로 변환합니다.

substr(str: string, startIndex: number)

substr(str: string, startIndex: number, length: number)

문자열

숫자 인수가 지정한 인덱스의 하위 문자열을 문자열 끝에 반환합니다. 함수에 두 번째 숫자 인수가 있는 경우 해당 인수에는 검색되는 하위 문자열의 길이가 포함됩니다. 예를 들어, substr("xyZfooxyZ",3, 3)"foo"를 반환합니다.

replace(fieldName: string, searchValue: string, replaceValue: string)

문자열

fieldName: string에서 searchValue의 모든 인스턴스를 replaceValue로 바꿉니다.

예를 들어, replace(logGroup,"smoke_test","Smoke") 함수는 logGroup 필드에 문자열 값 smoke_test를 포함한 로그 이벤트를 검색하고 해당 값을 Smoke 문자열로 바꿉니다.

strcontains(str: string, searchValue: string)

number

strsearchValue와 0이 포함되어 있으면 1을 반환합니다.