

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

# statistik
<a name="CWL_QuerySyntax-Stats"></a>

 Gunakan `stats` untuk membuat visualisasi data log Anda seperti diagram batang, diagram garis, dan bagan area bertumpuk. Ini membantu Anda mengidentifikasi pola dalam data log Anda dengan lebih efisien. CloudWatch Log Insights menghasilkan visualisasi untuk kueri yang menggunakan `stats` fungsi dan satu atau beberapa fungsi agregasi. 

Misalnya, kueri berikut dalam grup log Route 53 mengembalikan visualisasi yang menunjukkan distribusi catatan Route 53 per jam, berdasarkan jenis kueri.

```
stats count(*) by queryType, bin(1h)
```

Semua kueri tersebut dapat menghasilkan diagram batang. Jika kueri Anda menggunakan fungsi `bin()` untuk mengelompokkan data dengan satu bidang dari waktu ke waktu, Anda juga dapat melihat diagram garis dan diagram area bertumpuk.

Satuan waktu dan singkatan berikut didukung dengan `bin` fungsi tersebut. Untuk semua unit dan singkatan yang menyertakan lebih dari satu karakter, menambahkan s ke pluralisasi didukung. Jadi keduanya `hr` dan `hrs` bekerja untuk menentukan jam.
+ `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`

**Topics**
+ [Visualisasikan data deret waktu](#CWL_Insights-Visualizing-TimeSeries)
+ [Visualisasikan data log yang dikelompokkan berdasarkan bidang](#CWL_Insights-Visualizing-ByFields)
+ [Gunakan beberapa perintah statistik dalam satu kueri](#CWL_QuerySyntax-stats-multi)
+ [Fungsi untuk digunakan dengan statistik](#CWL_QuerySyntax-stats-functions)

## Visualisasikan data deret waktu
<a name="CWL_Insights-Visualizing-TimeSeries"></a>

Visualisasi deret waktu dapat digunakan dengan kueri yang memiliki karakteristik berikut:
+ Kueri berisi satu atau beberapa fungsi agregasi. Untuk informasi selengkapnya, lihat [Aggregation Functions in the Stats Command](#CWL_Insights_Aggregation_Functions).
+ Kueri menggunakan fungsi `bin()` untuk mengelompokkan data dengan satu bidang. 

Kueri-kueri ini dapat menghasilkan diagram garis, diagram area bertumpuk, diagram batang, dan diagram lingkaran. 

**Contoh**

Untuk tutorial lengkap, lihat [Tutorial: Jalankan kueri yang menghasilkan visualisasi deret waktu](CWL_AnalyzeLogData_VisualizationQuery.md). 

Berikut adalah contoh kueri lain yang dapat digunakan untuk visualisasi deret waktu.

Kueri berikut menghasilkan visualisasi nilai rata-rata bidang `myfield1`, dengan titik data yang dibuat setiap lima menit. Setiap titik data adalah agregasi dari rata-rata nilai `myfield1` dari log lima menit sebelumnya.

```
stats avg(myfield1) by bin(5m)
```

Kueri berikut menghasilkan visualisasi dari tiga nilai berdasarkan pada bidang-bidang yang berbeda, dengan titik data yang dibuat setiap lima menit. Visualisasi dihasilkan karena kueri berisi fungsi agregat dan menggunakan `bin()` sebagai bidang pengelompokan.

```
stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)
```

**Bagan garis dan batasan bagan area bertumpuk**

Pertanyaan yang membuat agregat informasi entri log, tetapi tidak menggunakan fungsi `bin()` dapat menghasilkan diagram batang. Namun, kueri tidak dapat menghasilkan diagram garis atau diagram area bertumpuk. Untuk informasi selengkapnya tentang tipe kueri ini, lihat [Visualisasikan data log yang dikelompokkan berdasarkan bidang](#CWL_Insights-Visualizing-ByFields).

## Visualisasikan data log yang dikelompokkan berdasarkan bidang
<a name="CWL_Insights-Visualizing-ByFields"></a>

Anda dapat menghasilkan diagram batang untuk kueri yang menggunakan fungsi `stats` dan satu atau beberapa fungsi agregasi. Untuk informasi selengkapnya, lihat [Aggregation Functions in the Stats Command](#CWL_Insights_Aggregation_Functions).

Untuk melihat visualisasi, jalankan kueri Anda. Lalu pilih tab **Visualization** (Visualisasi), pilih panah di sebelah **Line** (Garis), dan pilih **Bar** (Batang). Visualisasi dibatasi hingga 100 batang dalam diagram batang.

**Contoh**

Untuk tutorial lengkap, lihat [Tutorial: Jalankan kueri yang menghasilkan visualisasi yang dikelompokkan berdasarkan bidang log](CWL_AnalyzeLogData_VisualizationFieldQuery.md). Paragraf berikut mencakup lebih banyak contoh kueri untuk visualisasi berdasarkan bidang.

Kueri log alur VPC berikut menemukan jumlah rata-rata byte yang ditransfer per sesi untuk setiap alamat tujuan.

```
stats avg(bytes) by dstAddr
```

Anda juga dapat menghasilkan diagram yang mencakup lebih dari satu batang untuk setiap nilai yang dihasilkan. Misalnya, kueri log alur VPC berikut menemukan jumlah rata-rata dan maksimum byte yang ditransfer per sesi untuk setiap alamat tujuan.

```
stats avg(bytes), max(bytes) by dstAddr
```

Kueri berikut menemukan jumlah log kueri Amazon Route 53 untuk setiap jenis kueri.

```
stats count(*) by queryType
```

## Gunakan beberapa perintah statistik dalam satu kueri
<a name="CWL_QuerySyntax-stats-multi"></a>

Anda dapat menggunakan sebanyak dua `stats` perintah dalam satu kueri. Ini memungkinkan Anda untuk melakukan agregasi tambahan pada output agregasi pertama.

**Contoh: Query dengan dua `stats` perintah**

Misalnya, kueri berikut pertama-tama menemukan total volume lalu lintas di tempat sampah 5 menit, kemudian menghitung volume lalu lintas tertinggi, terendah, dan rata-rata di antara tempat sampah 5 menit tersebut.

```
FIELDS strlen(@message) AS message_length
| STATS sum(message_length)/1024/1024 as logs_mb BY bin(5m)
| STATS max(logs_mb) AS peak_ingest_mb, 
        min(logs_mb) AS min_ingest_mb, 
        avg(logs_mb) AS avg_ingest_mb
```

**Contoh: Gabungkan beberapa perintah statistik dengan fungsi lain seperti`filter`,, `fields` `bin`**

Anda dapat menggabungkan dua `stats` perintah dengan perintah lain seperti `filter` dan `fields` dalam satu kueri. Misalnya, kueri berikut menemukan jumlah alamat IP yang berbeda dalam sesi dan menemukan jumlah sesi berdasarkan platform klien, memfilter alamat IP tersebut, dan akhirnya menemukan rata-rata permintaan sesi per platform klien.

```
STATS count_distinct(client_ip) AS session_ips, 
      count(*) AS requests BY session_id, client_platform
| FILTER session_ips > 1
| STATS count(*) AS multiple_ip_sessions, 
        sum(requests) / count(*) AS avg_session_requests BY client_platform
```

Anda dapat menggunakan `bin` dan `dateceil` berfungsi dalam kueri dengan beberapa `stats` perintah. Misalnya, kueri berikut pertama-tama menggabungkan pesan menjadi blok 5 menit, kemudian menggabungkan blok 5 menit tersebut menjadi blok 10 menit dan menghitung volume lalu lintas tertinggi, terendah, dan rata-rata dalam setiap blok 10 menit.

```
FIELDS strlen(@message) AS message_length
| STATS sum(message_length) / 1024 / 1024 AS logs_mb BY BIN(5m) as @t
| STATS max(logs_mb) AS peak_ingest_mb, 
        min(logs_mb) AS min_ingest_mb,
        avg(logs_mb) AS avg_ingest_mb BY dateceil(@t, 10m)
```

**Catatan dan batasan**

Kueri dapat memiliki maksimal dua `stats` perintah. Kuota ini tidak dapat diubah. 

Jika Anda menggunakan `limit` perintah `sort` atau, itu harus muncul setelah `stats` perintah kedua. Jika sebelum `stats` perintah kedua, kueri tidak valid.

Ketika kueri memiliki dua `stats` perintah, sebagian hasil dari kueri tidak mulai ditampilkan sampai `stats` agregasi pertama selesai.

Dalam `stats` perintah kedua dalam satu kueri, Anda hanya dapat merujuk ke bidang yang didefinisikan dalam `stats` perintah pertama. Misalnya, kueri berikut tidak valid karena `@message` bidang tidak akan tersedia setelah `stats` agregasi pertama.

```
FIELDS @message
| STATS SUM(Fault) by Operation
# You can only reference `SUM(Fault)` or Operation at this point
| STATS MAX(strlen(@message)) AS MaxMessageSize # Invalid reference to @message
```

Bidang apa pun yang Anda referensikan setelah `stats` perintah pertama harus didefinisikan dalam `stats` perintah pertama itu.

```
STATS sum(x) as sum_x by y, z
| STATS max(sum_x) as max_x by z
# You can only reference `max(sum_x)`, max_x or z at this point
```

**penting**  
`bin`Fungsi selalu secara implisit menggunakan bidang. `@timestamp` Ini berarti Anda tidak dapat menggunakan `bin` `stats` perintah kedua tanpa menggunakan `stats` perintah pertama untuk menyebarkan `timestamp` bidang. Misalnya, kueri berikut tidak valid.  

```
FIELDS strlen(@message) AS message_length
 | STATS sum(message_length) AS ingested_bytes BY @logStream
 | STATS avg(ingested_bytes) BY bin(5m) # Invalid reference to @timestamp field
```
Sebagai gantinya, tentukan `@timestamp` bidang di `stats` perintah pertama, dan kemudian Anda dapat menggunakannya dengan `dateceil` `stats` perintah kedua seperti pada contoh berikut.  

```
FIELDS strlen(@message) AS message_length
 | STATS sum(message_length) AS ingested_bytes, max(@timestamp) as @t BY @logStream
 | STATS avg(ingested_bytes) BY dateceil(@t, 5m)
```

## Fungsi untuk digunakan dengan statistik
<a name="CWL_QuerySyntax-stats-functions"></a><a name="CWL_Insights_Aggregation_Functions"></a>

CloudWatch Logs Insights mendukung fungsi agregasi statistik dan fungsi non-agregasi statistik.

 Gunakan fungsi statsaggregation dalam `stats` perintah dan sebagai argumen untuk fungsi lainnya. 


| Fungsi | Tipe hasil | Deskripsi | 
| --- | --- | --- | 
|  `avg(fieldName: NumericLogField)` |  nomor |  Rata-rata nilai di bidang yang ditentukan.  | 
|  `count()` `count(fieldName: LogField)` |  nomor |  Menghitung log acara. `count()` (atau `count(*)`) menghitung semua kejadian yang dikembalikan oleh kueri, sementara `count(fieldName)` menghitung semua catatan yang menyertakan nama bidang yang ditentukan.  | 
|  `count_distinct(fieldName: LogField)` |  nomor |  Mengembalikan jumlah nilai unik untuk bidang. Jika bidang memiliki kardinalitas yang sangat tinggi (mengandung banyak nilai unik), nilai yang dikembalikan oleh `count_distinct` hanyalah sebuah perkiraan.  | 
|  `max(fieldName: LogField)` |  LogFieldValue |  Nilai maksimum untuk bidang log ini dalam log yang dikueri.  | 
|  `min(fieldName: LogField)` |  LogFieldValue |  Nilai minimum untuk bidang log ini dalam log yang dikueri.  | 
|  `pct(fieldName: LogFieldValue, percent: number)` |  LogFieldValue |  Persentil menunjukkan posisi relatif dari nilai dalam rangkaian data. Misalnya, `pct(@duration, 95)` mengembalikan nilai `@duration` di mana 95 persen dari nilai `@duration` lebih rendah dari nilai ini, dan 5 persen lebih tinggi dari nilai ini.  | 
|  `stddev(fieldName: NumericLogField)` |  nomor |  Standar deviasi di bidang yang ditentukan.  | 
|  `sum(fieldName: NumericLogField)` |  nomor |  Jumlah nilai di bidang yang ditentukan.  | 

 **Statistik fungsi non-agregasi** <a name="CWL_Insights_Non-Aggregation_Functions"></a>

 Gunakan fungsi non-agregasi dalam `stats` perintah dan sebagai argumen untuk fungsi lainnya. 


| Fungsi | Tipe hasil | Deskripsi | 
| --- | --- | --- | 
|  `earliest(fieldName: LogField)` |  LogField |  Mengembalikan nilai `fieldName` dari log acara yang memiliki stempel waktu paling awal dalam log yang dikueri.  | 
|  `latest(fieldName: LogField)` |  LogField |  Mengembalikan nilai `fieldName` dari log acara yang memiliki stempel waktu paling akhir dalam log yang dikueri.  | 
|  `sortsFirst(fieldName: LogField)` |  LogField |  Mengembalikan nilai `fieldName` yang ada di urutan pertama dalam log yang dikueri.  | 
|  `sortsLast(fieldName: LogField)` |  LogField |  Mengembalikan nilai `fieldName` yang ada di urutan terakhir dalam log yang dikueri.  | 