

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# CloudWatch sintaks ekspresi pencarian
<a name="search-expression-syntax"></a>

Ekspresi pencarian yang benar memiliki format berikut.

```
SEARCH(' {Namespace, DimensionName1, DimensionName2, ...} SearchTerm', 'Statistic')
```

Sebagai contoh:

```
SEARCH('{AWS/EC2,InstanceId} MetricName="CPUUtilization"', 'Average')
```
+ Bagian pertama kueri setelah kata `SEARCH`, yang diapik dengan rangka melengkung, adalah *skema metrik* yang akan dicari. Skema metrik memuat namespace metrik dan satu nama dimensi atau lebih. Termasuk skema metrik dalam kueri pencarian yang bersifat opsional. Jika ditentukan, skema metrik harus memuat namespace dan secara opsional dapat memuat satu nama dimensi atau lebih yang benar di namespace tersebut.

  Anda tidak perlu menggunakan tanda kutip di dalam skema metrik kecuali jika namespace atau nama dimensi mencakup spasi atau karakter bukan alfanumerik. Dalam hal ini, Anda harus mengapit nama yang memuat karakter tersebut dengan tanda kutip ganda.
+ `SearchTerm` juga bersifat opsional, tetapi pencarian yang benar harus memuat skema metrik, `SearchTerm`, atau keduanya. `SearchTerm`Biasanya berisi satu atau lebih akun IDs, nama metrik atau nilai dimensi. `SearchTerm` dapat menyertakan beberapa istilah untuk dicari, baik cocok sebagian maupun yang benar-benar cocok. Juga dapat memuat operator Boolean. 

  Menggunakan ID akun hanya `SearchTerm` berfungsi di akun yang disiapkan sebagai akun pemantauan untuk pengamatan CloudWatch lintas akun. Sintaks untuk ID akun `SearchTerm` adalah `:aws.AccountId = 444455556666`. Anda juga dapat menggunakan `'LOCAL'` untuk menentukan akun pemantauan itu sendiri: `:aws.AccountId = 'LOCAL'`

  Untuk informasi selengkapnya, lihat [CloudWatch observabilitas lintas akun](CloudWatch-Unified-Cross-Account.md).

  `SearchTerm` dapat mencakup satu penanda atau lebih, seperti `MetricName=` sebagaimana dalam contoh ini, tetapi menggunakan penanda yang tidak diperlukan.

  Skema metrik dan `SearchTerm` harus diapit bersama-sama dalam sepasang tanda kutip tunggal.
+ `Statistic`Ini adalah nama dari setiap CloudWatch statistik yang valid. Ini harus diapit dengan satu tanda kutip. Untuk informasi selengkapnya, lihat [Statistik](cloudwatch_concepts.md#Statistic).

Contoh sebelumnya mencari namespace `AWS/EC2` untuk metrik yang memiliki `InstanceId` sebagai nama dimensi. Ini mengembalikan semua metrik `CPUUtilization` yang ditemukan, dengan grafik yang menunjukkan statistik `Average`. 

Ekspresi pencarian hanya dapat menemukan metrik yang telah melaporkan data dalam dua minggu terakhir.

**Batas ekspresi pencarian**

Ukuran kueri ekspresi pencarian maksimum 1024 karakter. Anda dapat memiliki sebanyak 100 ekspresi pencarian pada satu grafik. Grafik dapat menampilkan sebanyak 500 deret waktu.

## CloudWatch ekspresi pencarian: Tokenisasi
<a name="search-expression-syntax-tokenization"></a>

Saat Anda menentukan`SearchTerm`, fungsi pencarian akan mencari *token*, yang merupakan substring yang secara CloudWatch otomatis dihasilkan dari nama metrik lengkap, nama dimensi, nilai dimensi, dan ruang nama. CloudWatch menghasilkan token yang dibedakan dengan kapitalisasi kasus unta dalam string asli. Karakter numerik juga berfungsi sebagai awal token baru, dan karakter bukan alfanumerik berfungsi sebagai pembatas, yang membuat token sebelum dan sesudah karakter bukan alfanumerik.

String berkelanjutan dengan jenis karakter pembatas token yang sama menghasilkan satu token. 

Semua token dibuat dalam huruf kecil. Tabel berikut menunjukkan beberapa contoh token yang dibuat.


| String awal | Token yang dihasilkan | 
| --- | --- | 
|  CustomCount1  |  `customcount1`, `custom`, `count`, `1`    | 
|  SDBFailure  |  `sdbfailure`, `sdb`, `failure`  | 
|  Project2-trial333  |  `project2trial333`, `project`, `2`, `trial`, `333`  | 

## CloudWatch ekspresi pencarian: Kecocokan sebagian
<a name="search-expression-partial-match"></a>

Saat Anda menentukan a`SearchTerm`, istilah pencarian juga diberi token. CloudWatchmenemukan metrik berdasarkan kecocokan sebagian, yang merupakan kecocokan dari satu token yang dihasilkan dari istilah pencarian ke token tunggal yang dihasilkan dari nama metrik, namespace, nama dimensi, atau nilai dimensi.

Pencarian cocok sebagian untuk mencocokkan satu token bersifat tidak peka huruf besar dan kecil. Sebagai contoh, menggunakan salah satu istilah pencarian berikut dapat menampilkan metrik `CustomCount1`:
+ `count`
+ `Count`
+ `COUNT`

Namun demikian, menggunakan `couNT` sebagai istilah pencarian tidak menemukan `CustomCount1` karena penulisan huruf besar dalam istilah pencarian `couNT` diberi token menjadi `cou` dan `NT`.

Pencarian juga dapat mencocokkan token gabungan, yang merupakan beberapa token yang muncul secara berurutan dalam nama aslinya. Untuk mencocokkan token gabungan, pencarian peka huruf besar dan kecil. Sebagai contoh, jika istilah awal `CustomCount1`, mencari `CustomCount` atau `Count1` berhasil, tetapi mencari `customcount` atau `count1` tidak berhasil.

## CloudWatch ekspresi pencarian: Pencocokan yang tepat
<a name="search-expression-exact-match"></a>

Anda dapat menentukan pencarian untuk menemukan istilah yang benar-benar cocok saja dari istilah pencarian menggunakan tanda kutip ganda di bagian dari istilah pencarian yang memerlukan istilah yang benar-benar cocok. . Tanda kutip ganda ini diapit dalam tanda kutip tunggal yang digunakan di sekitar seluruh istilah pencarian. Sebagai contoh, **SEARCH(' \$1MyNamespace\$1, "CustomCount1" ', 'Maximum')** menemukan string `CustomCount1` yang benar-benar sama jika ada sebagai nama metrik, nama dimensi, atau nilai dimensi di namespace yang disebut `MyNamespace`. Namun demikian, pencarian **SEARCH(' \$1MyNamespace\$1, "customcount1" ', 'Maximum')** atau **SEARCH(' \$1MyNamespace\$1, "Custom" ', 'Maximum')** tidak menemukan string ini.

Anda dapat menggabungkan istilah yang cocok sebagian dan istilah yang benar-benar cocok dalam satu ekspresi pencarian. Sebagai contoh, **SEARCH(' \$1AWS/NetworkELB, LoadBalancer\$1 "ConsumedLCUs" OR flow ', 'Maximum')** mengembalikan metrik Penyeimbang Beban Elastis yang disebut `ConsumedLCUs` serta semua metrik atau dimensi Penyeimbang Beban Elastis yang memuat token `flow`. 

Penggunaan istilah yang benar-benar cocok juga merupakan cara yang baik untuk menemukan nama dengan karakter khusus, seperti karakter bukan alfanumerik atau spasi, seperti dalam contoh berikut.

```
SEARCH(' {"My Namespace", "Dimension@Name"}, "Custom:Name[Special_Characters" ', 'Maximum')
```

## CloudWatch ekspresi pencarian: Tidak termasuk skema metrik
<a name="search-expression-no-schema"></a>

Semua contoh yang ditunjukkan sejauh ini mencakup skema metrik, dalam rangka melengkung. Pencarian yang menghilangkan skema metrik juga benar.

Sebagai contoh, **SEARCH(' "CPUUtilization" ', 'Average')** mengembalikan semua nama metrik, nama dimensi, nilai dimensi, dan namespace yang benar-benar cocok untuk string `CPUUtilization`. Di ruang nama AWS metrik, ini dapat mencakup metrik dari beberapa layanan termasuk Amazon EC2, Amazon ECS, AI, dan lainnya. SageMaker 

Untuk mempersempit pencarian ini menjadi hanya satu AWS layanan, praktik terbaik adalah menentukan namespace dan dimensi apa pun yang diperlukan dalam skema metrik, seperti pada contoh berikut. Meskipun mempersempit pencarian menjadi namespace `AWS/EC2`, ini masih akan mengembalikan hasil metrik lain jika Anda telah menetapkan `CPUUtilization` sebagai nilai dimensi untuk metrik tersebut. 

```
SEARCH(' {AWS/EC2, InstanceType} "CPUUtilization" ', 'Average')
```

Atau, Anda dapat menambahkan namespace di `SearchTerm` dalam contoh berikut. Namun dalam contoh ini, pencarian akan cocok dengan string `AWS/EC2`, meskipun ini merupakan nama atau nilai dimensi kustom.

```
SEARCH(' "AWS/EC2" MetricName="CPUUtilization" ', 'Average')
```

## CloudWatch ekspresi pencarian: Menentukan nama properti dalam pencarian
<a name="search-expression-type-of-search-term"></a>

Pencarian yang benar-benar cocok berikut untuk `"CustomCount1"` mengembalikan semua metrik dengan tepat namanya.

```
SEARCH(' "CustomCount1" ', 'Maximum')
```

Tapi itu juga mengembalikan metrik dengan nama dimensi, nilai dimensi, atau namespace dari `CustomCount1`. Untuk menyusun pencarian lebih lanjut, Anda dapat menetapkan nama properti dari jenis objek yang ingin Anda temukan dalam pencarian Anda. Contoh berikut mencari semua namespace dan mengembalikan metrik yang disebut `CustomCount1`.

```
SEARCH(' MetricName="CustomCount1" ', 'Maximum')
```

Anda juga dapat menggunakan ruang nama dan name/value pasangan dimensi sebagai nama properti, seperti pada contoh berikut. Contoh pertama juga menggambarkan bahwa Anda juga dapat menggunakan nama properti dengan pencarian yang cocok sebagian.

```
SEARCH(' InstanceType=micro ', 'Average')
```

```
SEARCH(' InstanceType="t2.micro" Namespace="AWS/EC2" ', 'Average')
```

## CloudWatch ekspresi pencarian: Karakter non-alfanumerik
<a name="search-expression-syntax-characters"></a>

Karakter non-alfanumerik berfungsi sebagai pembatas, dan menandai di mana nama metrik, dimensi, namespace, dan istilah pencarian akan dipisahkan menjadi token. Ketika istilah diberi token, karakter non-alfanumerik dihapus dan tidak muncul dalam token. Sebagai contoh, `Network-Errors_2` menghasilkan token `network`, `errors`, dan `2`. 

Istilah pencarian Anda dapat mencakup karakter non-alfanumerik. Jika karakter ini muncul dalam istilah pencarian Anda, maka karakter tersebut dapat menentukan token gabungan dalam karakter yang cocok sebagian. Sebagai contoh, semua pencarian berikut akan menemukan metrik yang disebut `Network-Errors-2` atau `NetworkErrors2`. 

```
network/errors
network+errors
network-errors
Network_Errors
```

Ketika Anda melakukan pencarian nilai yang benar-benar sama, karakter non-alfanumerik yang digunakan dalam pencarian yang benar-benar sama harus merupakan karakter yang benar yang muncul dalam string yang dicari. Sebagai contoh, jika Anda ingin menemukan `Network-Errors-2`, yang mencari `"Network-Errors-2"` berhasil, tetapi pencarian `"Network_Errors_2"` tidak berhasil.

Ketika Anda melakukan pencarian yang benar-benar sama, karakter berikut harus hilang dengan garis miring terbalik.

```
" \ ( )
```

Sebagai contoh, untuk menemukan nama metrik `Europe\France Traffic(Network)` berdasarkan karakter yang benar-benar sama, gunakan istilah pencarian **"Europe\$1\$1France Traffic\$1(Network\$1)"**

## CloudWatch ekspresi pencarian: Operator Boolean
<a name="search-expression-boolean-operators"></a>

Pencarian mendukung penggunaan operator Boolean `AND`, `OR`, dan `NOT` dalam `SearchTerm`. Operator Boolean diapit dalam tanda kutip tunggal yang Anda gunakan untuk mengapit seluruh istilah pencarian. Operator boolean peka huruf besar dan kecil, sehingga `and`, `or`, dan `not` tidak benar sebagai operator Boolean.

Anda dapat menggunakan `AND` secara eksplisit dalam pencarian Anda, seperti **SEARCH('\$1AWS/EC2,InstanceId\$1 network AND packets', 'Average')**. Tidak menggunakan operator Boolean di antara istilah pencarian secara implisit mencari seolah-olah ada operator `AND`, sehingga **SEARCH(' \$1AWS/EC2,InstanceId\$1 network packets ', 'Average')** memberikan hasil pencarian yang sama.

Gunakan `NOT` untuk mengecualikan subset data dari hasil. Sebagai contoh, **SEARCH(' \$1AWS/EC2,InstanceId\$1 MetricName="CPUUtilization" NOT i-1234567890123456 ', 'Average')** mengembalikan `CPUUtilization` untuk semua instans Anda, kecuali untuk instans `i-1234567890123456`. Anda juga dapat menggunakan klausa `NOT` sebagai satu-satunya istilah pencarian. Sebagai contoh, **SEARCH( 'NOT Namespace=AWS ', 'Maximum')** menghasilkan semua metrik kustom Anda (metrik dengan namespace yang tidak mencakup `AWS`).

Anda dapat menggunakan beberapa frasa `NOT` dalam kueri. Sebagai contoh, **SEARCH(' \$1AWS/EC2,InstanceId\$1 MetricName="CPUUtilization" NOT "ProjectA" NOT "ProjectB" ', 'Average')** mengembalikan `CPUUtilization` dari semua instans di Wilayah, kecuali untuk contoh dengan nilai dimensi `ProjectA` atau `ProjectB`.

Anda dapat menggabungkan operator Boolean untuk pencarian yang lebih kuat dan detail, seperti dalam contoh berikut. Gunakan tanda kurung untuk mengelompokkan operator.

Kedua contoh berikutnya mengembalikan semua nama metrik yang memuat `ReadOps` dari namespace EC2 dan EBS.

```
SEARCH(' (EC2 OR EBS) AND MetricName=ReadOps ', 'Maximum')
```

```
SEARCH(' (EC2 OR EBS) MetricName=ReadOps ', 'Maximum')
```

Contoh berikut mempersempit pencarian sebelumnya menjadi hasil yang hanya mencakup `ProjectA`, yang dapat berupa nilai dimensi. 

```
SEARCH(' (EC2 OR EBS) AND ReadOps AND ProjectA ', 'Maximum')
```

Contoh berikut menggunakan pengelompokan bersarang. Ini mengembalikan metrik Lambda untuk `Errors` dari semua fungsi, dan `Invocations` dari fungsi dengan nama yang menyertakan string `ProjectA` atau `ProjectB`.

```
SEARCH(' {AWS/Lambda,FunctionName} MetricName="Errors" OR (MetricName="Invocations" AND (ProjectA OR ProjectB)) ', 'Average')
```

## CloudWatch ekspresi pencarian: Menggunakan ekspresi matematika
<a name="search-expression-math-expressions"></a>

Anda dapat menggunakan ekspresi pencarian di dalam ekspresi matematika dalam grafik. 

Sebagai contoh, **SUM(SEARCH(' \$1AWS/Lambda, FunctionName\$1 MetricName="Errors" ', 'Sum'))** mengembalikan jumlah metrik `Errors` dari semua fungsi Lambda Anda.

Menggunakan baris terpisah untuk ekspresi pencarian dan ekspresi matematika Anda dapat memberikan hasil yang lebih berguna. Sebagai contoh, misal Anda menggunakan dua ekspresi berikut dalam grafik. Baris pertama menampilkan baris `Errors` secara terpisah untuk setiap fungsi Lambda Anda. ID dari ekspresi ini adalah `e1`. Baris kedua menambahkan baris lain yang menunjukkan jumlah kesalahan dari semua fungsi.

```
SEARCH(' {AWS/Lambda, FunctionName}, MetricName="Errors" ', 'Sum')
SUM(e1)
```