

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

# Sintaks aturan Contributor Insights di CloudWatch
<a name="ContributorInsights-RuleSyntax"></a>

Bagian ini menjelaskan aturan sintaksis untuk Wawasan Kontributor. Gunakan sintaks ini hanya ketika Anda membuat aturan dengan memasukkan blok JSON. Jika Anda menggunakan pemandu untuk membuat aturan, Anda tidak perlu mengetahui sintaksnya. Untuk informasi selengkapnya tentang membuat aturan menggunakan pemandu, silakan lihat [Membuat aturan Contributor Insights di CloudWatch](ContributorInsights-CreateRule.md).

Semua pencocokan aturan untuk peristiwa log dan nilai bidang peristiwa peka huruf besar dan kecil.

Contoh berikut mengilustrasikan sintaks untuk log JSON.

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*",
        "Log-group-name2"
    ],
    "LogFormat": "JSON",
    "Contribution": {
        "Keys": [
            "$.ip"
        ],
        "ValueOf": "$.requestBytes",
        "Filters": [
            {
                "Match": "$.httpMethod",
                "In": [
                    "PUT"
                ]
            }
        ]
    },
    "AggregateOn": "Sum"
}
```Bidang dalam Aturan Wawasan Kontributor

Skema  
 Nilai `Schema` untuk aturan yang menganalisis data CloudWatch Log harus selalu `{"Name": "CloudWatchLogRule", "Version": 1}` 

LogGroupNames  
 Sebuah susunan string. Untuk setiap elemen dalam susunan, Anda dapat secara opsional menggunakan `*` di akhir rangkaian untuk menyertakan semua grup log dengan nama yang dimulai dengan awalan itu.   
Berhati-hatilah menggunakan karakter pengganti dengan nama grup log. Anda dikenakan biaya untuk setiap peristiwa log yang sesuai dengan aturan. Jika secara tidak sengaja mencari lebih banyak grup log dari yang Anda inginkan, Anda mungkin akan dikenakan biaya tak terduga. Untuk informasi selengkapnya, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing).

LogGroupARNs  
Jika Anda membuat aturan ini di akun pemantauan observabilitas CloudWatch lintas akun, Anda dapat menggunakannya `LogGroupARNs` untuk menentukan grup log di akun sumber yang ditautkan ke akun pemantauan, dan untuk menentukan grup log di akun pemantauan itu sendiri. Anda harus menentukan salah satu `LogGroupNames` atau `LogGroupARNs` dalam aturan Anda, tetapi tidak keduanya.  
 `LogGroupARNs` adalah sebuah susunan string. Untuk setiap elemen dalam susunan, Anda dapat secara opsional menggunakan `*` sebagai wildcard dalam situasi tertentu. Misalnya Anda dapat menentukan `arn:aws:logs:us-west-1:*:log-group/MyLogGroupName2` grup log yang diberi nama `MyLogGroupName2` di semua akun sumber dan di akun pemantauan, di Wilayah AS Barat (California Utara). Anda juga dapat menentukan `arn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*` untuk menentukan semua grup log di AS Barat (California Utara) di 111122223333 yang memiliki nama yang dimulai dengan`GroupNamePrefix`.  
Anda tidak dapat menentukan sebagian ID AWS akun sebagai awalan dengan kartu liar.   
Hati-hati menggunakan wildcard dengan grup ARNs log. Anda dikenakan biaya untuk setiap peristiwa log yang sesuai dengan aturan. Jika secara tidak sengaja mencari lebih banyak grup log dari yang Anda inginkan, Anda mungkin akan dikenakan biaya tak terduga. Untuk informasi selengkapnya, lihat [ CloudWatch Harga Amazon](https://aws.amazon.com/cloudwatch/pricing).

LogFormat  
 Nilai yang valid adalah `JSON` dan `CLF`. 

Kontribusi  
 Objek ini mencakup `Keys` susunan dengan sebanyak empat anggota, secara opsional satu `ValueOf`, dan secara opsional susunan sebanyak empat `Filters`. 

Kunci  
 Susunan hingga empat bidang log yang digunakan sebagai dimensi untuk mengklasifikasi kontributor. Jika Anda memasukkan lebih dari satu kunci, setiap kombinasi nilai unik untuk kunci tersebut dihitung sebagai kontributor unik. Bidang harus ditentukan menggunakan notasi format properti JSON. 

ValueOf  
 (Opsional) Tentukan ini hanya ketika Anda menentukan `Sum` sebagai nilai dari `AggregateOn`. `ValueOf` menentukan bidang log dengan nilai numerik. Dalam jenis aturan ini, kontributor diberikan peringkat berdasarkan jumlah nilai bidang ini, bukan jumlah kejadiannya dalam pencatatan log. Sebagai contoh, jika ingin menyortir kontributor berdasarkan total `BytesSent` selama satu periode, Anda akan menentukan `ValueOf` untuk `BytesSent` dan menentukan `Sum` untuk `AggregateOn`. 

Penyaring  
 Menentukan array sebanyak empat filter untuk mempersempit peristiwa log yang termasuk dalam laporan. Jika Anda menetapkan beberapa penyaring, Wawasan Kontributor mengevaluasinya dengan operator DAN logis. Anda dapat menggunakan ini untuk menyaring peristiwa log yang tidak relevan dalam pencarian atau Anda dapat menggunakannya untuk memilih kontributor tunggal untuk menganalisis perilaku mereka.  
Setiap anggota dalam susunan harus menyertakan `Match` bidang dan bidang yang menunjukkan jenis operator yang cocok untuk digunakan.  
Bidang `Match` menetapkan bidang log untuk mengevaluasi di penyaring. Bidang log ditentukan menggunakan notasi format properti JSON.  
Bidang operator yang cocok harus salah satu dari berikut: `In`, `NotIn`, `StartsWith`, `GreaterThan`, `LessThan`, `EqualTo`, `NotEqualTo`, atau `IsPresent`. Bilang bidang operator adalah `In`, `NotIn`, atau `StartsWith`, itu diikuti dengan susunan rangkaian nilai untuk diperiksa. Wawasan Kontributor mengevaluasi susunan nilai rangkaian dengan operator OR. Susunan dapat mencakup sebanyak 10 nilai rangkaian.  
Jika bidang operator adalah `GreaterThan`, `LessThan`, `EqualTo`, atau `NotEqualTo`, diikuti dengan nilai numerik tunggal untuk dibandingkan.  
Jika bidang operator adalah `IsPresent`, itu diikuti oleh `true` atau `false`. Operator ini mencocokkan log acara berdasarkan pada apakah bidang log yang ditentukan ada di dalam peristiwa log. `isPresent` hanya bekerja dengan nilai di simpul daun properti JSON. Misalnya, penyaring yang mencari kecocokan dengan `c-count` tidak mengevaluasi peristiwa log dengan nilai `details.c-count.c1`.  
Lihat empat contoh penyaring berikut:  

```
{"Match": "$.httpMethod", "In": [ "PUT", ] }
{"Match": "$.StatusCode", "EqualTo": 200 }
{"Match": "$.BytesReceived", "GreaterThan": 10000}
{"Match": "$.eventSource", "StartsWith": [ "ec2", "ecs" ] }
```

AggregateOn  
 Nilai yang valid adalah `Count` dan `Sum`. Menentukan apakah akan menggabungkan laporan berdasarkan pada hitungan kejadian atau jumlah dari nilai bidang yang ditentukan dalam bidang `ValueOf`. 

**Rotasi format properti JSON**

Bidang `Keys`, `ValueOf`, dan `Match` mengikuti format properti JSON dengan notasi titik, ketika `$` mewakili akar dari objek JSON. Hal ini diikuti dengan periode dan kemudian rangkaian alfanumerik dengan nama subproperti. Beberapa tingkat properti didukung.

Karakter pertama dari string hanya bisa A-Z atau a-z. Karakter string berikut ini dapat berupa A-Z, a-z, atau 0-9.

Daftar berikut menggambarkan contoh format properti JSON yang benar:

```
$.userAgent
$.endpoints[0]
$.users[1].name
$.requestParameters.instanceId
```

**Bidang tambahan di dalam aturan untuk log CLF**

Peristiwa log Format Log Umum (CLF) tidak memiliki nama untuk bidang seperti JSON. Untuk menyediakan bidang yang digunakan untuk aturan Wawasan Kontributor, peristiwa log CLF dapat diperlakukan sebagai susunan dengan indeks mulai dari `1`. Anda dapat menentukan bidang pertama sebagai **"1"**, bidang kedua sebagai **"2"**, dan seterusnya.

Untuk membuat aturan untuk log CLF lebih mudah dibaca, Anda dapat menggunakan `Fields`. Ini memungkinkan Anda untuk memberikan nama alias untuk lokasi bidang CLF. Misalnya, Anda dapat menentukan bahwa lokasi "4" adalah alamat IP. Setelah ditentukan, `IpAddress` dapat digunakan sebagai properti di `Keys`, `ValueOf`, dan `Filters` dalam aturan.

Berikut adalah contoh aturan untuk log CLF yang menggunakan bidang `Fields`.

```
{
    "Schema": {
        "Name": "CloudWatchLogRule",
        "Version": 1
    },
    "LogGroupNames": [
        "API-Gateway-Access-Logs*"
    ],
    "LogFormat": "CLF",
    "Fields": {
        "4": "IpAddress",
        "7": "StatusCode"
    },
    "Contribution": {
        "Keys": [
            "IpAddress"
        ],
        "Filters": [
            {
                "Match": "StatusCode",
                "EqualTo": 200
            }
        ]
    },
    "AggregateOn": "Count"
}
```