

# Deklarasi Sumber
<a name="source-object-declarations"></a>

Di Amazon Kinesis Agent for Microsoft Windows, *deklarasi sumber* menjelaskan di mana dan apa saja data log, peristiwa, dan metrik yang harus dikumpulkan. Deklarasi sumber juga secara opsional menentukan informasi untuk mengurai data tersebut sehingga dapat diubah. Bagian berikut menjelaskan konfigurasi untuk jenis sumber bawaan yang tersedia di Kinesis Agent for Windows. Karena Kinesis Agent for Windows dapat diperluas, Anda dapat menambahkan jenis sumber khusus. Setiap jenis sumber biasanya memerlukan pasangan kunci-nilai tertentu dalam objek konfigurasi yang relevan untuk jenis sumber.

Semua deklarasi sumber harus berisi setidaknya pasangan kunci-nilai berikut:

`Id`  
Sebuah string unik yang mengidentifikasi objek sumber tertentu dalam file konfigurasi.

`SourceType`  
Nama jenis sumber untuk objek sumber ini. Jenis sumber menentukan asal data log, peristiwa, atau metrik yang sedang dikumpulkan oleh objek sumber ini. Jenis sumber juga mengontrol apa saja aspek lain dari sumber yang dapat dideklarasikan.

Untuk contoh file konfigurasi lengkap yang menggunakan berbagai jenis deklarasi sumber, lihat [Streaming dari Berbagai Sumber ke Kinesis Data Streams](configuring-kaw-examples.md#configuring-kaw-examples-sources). 

**Topics**
+ [Konfigurasi DirectorySource](#directory-source-configuration)
+ [Konfigurasi ExchangeLogSource](#exchange-source-configuration)
+ [Konfigurasi W3SVCLogSource](#iis-source-configuration)
+ [Konfigurasi UlsSource](#sharepoint-source-configuration)
+ [Konfigurasi WindowsEventLogSource](#window-event-source-configuration)
+ [Konfigurasi WindowsEventLogPollingSource](#eventlogpolling-source-configuration)
+ [Konfigurasi WindowsETWEventSource](#etw-source-configuration)
+ [Konfigurasi WindowsPerformanceCounterSource](#performance-counter-source-configuration)
+ [Sumber Metrik Bawaan Kinesis Agent for Windows](#kinesis-agent-builin-metrics-source)
+ [Daftar Metrik Kinesis Agent for Windows](#kinesis-agent-metric-list)
+ [Konfigurasi Bookmark](#advanced-source-configuration)

## Konfigurasi DirectorySource
<a name="directory-source-configuration"></a>

### Overview
<a name="directory-source-configuration-overview"></a>

Jenis sumber `DirectorySource` mengumpulkan log dari file yang disimpan dalam direktori tertentu. Karena berkas log ada dalam berbagai format, deklarasi `DirectorySource` memungkinkan Anda menentukan format data dalam berkas log. Kemudian Anda dapat mengubah isi log ke format standar seperti JSON atau XML sebelum mengalirkannya ke berbagai layanan AWS.

Berikut ini adalah contoh deklarasi `DirectorySource`:

```
{
	   "Id": "myLog",
	   "SourceType": "DirectorySource",
	   "Directory": "C:\\Program Data\\MyCompany\\MyService\\logs",
	   "FileNameFilter": "*.log",
	   "IncludeSubdirectories": true,
	   "IncludeDirectoryFilter": "cpu\\cpu-1;cpu\\cpu-2;load;memory",
	   "RecordParser": "Timestamp",
	   "TimestampFormat": "yyyy-MM-dd HH:mm:ss.ffff",
	   "Pattern": "\\d{4}-\\d{2}-\\d(2}",
	   "ExtractionPattern": "",
	   "TimeZoneKind": "UTC",
	   "SkipLines": 0,
	   "Encoding": "utf-16",
	   "ExtractionRegexOptions": "Multiline"
}
```

Semua deklarasi `DirectorySource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"DirectorySource"` (wajib).

`Directory`  
Jalur ke direktori yang berisi berkas log (diperlukan).

`FileNameFilter`  
Secara opsional membatasi sekumpulan file dalam direktori tempat data log dikumpulkan berdasarkan pola penamaan file wildcard. Jika Anda memiliki beberapa pola nama berkas log, fitur ini memungkinkan Anda untuk menggunakan satu `DirectorySource`, seperti yang ditunjukkan dalam contoh berikut.  

```
FileNameFilter: "*.log|*.txt"
```
Administrator sistem terkadang mengompresi berkas log sebelum mengarsipkannya. Jika Anda menentukan `"*.*"` di `FileNameFilter`, file terkompresi yang dikenal menjadi dikecualikan. Fitur ini mencegah file `.zip`, `.gz`, dan `.bz2` dari dialirkan secara tidak sengaja. Jika pasangan kunci-nilai ini tidak ditentukan, data dari semua file dalam direktori dikumpulkan secara default.

`IncludeSubdirectories`  
Menentukan untuk memantau subdirektori hingga kedalaman arbitrer yang dibatasi oleh sistem operasi. Fitur ini berguna untuk memantau server web dengan beberapa situs web. Anda juga dapat menggunakan atribut `IncludeDirectoryFilter` untuk memantau subdirektori tertentu saja yang ditentukan dalam filter.

`RecordParser`  
Menentukan bagaimana jenis sumber `DirectorySource` harus mengurai berkas log yang ditemukan di direktori tertentu. Pasangan kunci-nilai ini diperlukan, dan nilai-nilai yang valid adalah sebagai berikut:  
+ `SingleLine` — Setiap baris dari berkas log adalah catatan log.
+ `SingleLineJson` — Setiap baris dari berkas log adalah catatan log berformat JSON. Parser ini berguna ketika Anda ingin menambahkan pasangan kunci-nilai tambahan ke JSON menggunakan dekorasi objek. Untuk informasi lebih lanjut, lihat [Mengonfigurasi Dekorasi Sink](sink-object-declarations.md#configuring-kinesis-agent-windows-decoration-configuration). Untuk contoh yang menggunakan parser catatan `SingleLineJson`, lihat [Tutorial: Mengalirkan Berkas Log JSON ke Amazon S3 Menggunakan Kinesis Agent for Windows](directory-source-to-s3-tutorial.md).
+ `Timestamp` — Satu atau beberapa baris dapat mencakup satu catatan log. Catatan log dimulai dengan timestamp. Opsi ini memerlukan penentuan pasangan kunci-nilai `TimestampFormat`.
+ `Regex` — Setiap catatan dimulai dengan teks yang cocok dengan ekspresi reguler tertentu. Opsi ini memerlukan penentuan pasangan kunci-nilai `Pattern`.
+ `SysLog` — Menunjukkan bahwa berkas log ditulis dalam format standar [syslog](https://en.wikipedia.org/wiki/Syslog). Berkas log diurai menjadi catatan-catatan berdasarkan spesifikasi tersebut.
+ `Delimited` — Versi sederhana dari parser catatan Regex tempat item data dalam catatan log dipisahkan oleh pembatas yang konsisten. Opsi ini lebih mudah digunakan dan lebih cepat berjalan daripada parser Regex, dan lebih disukai bila opsi ini tersedia. Bila menggunakan opsi ini, Anda harus menentukan pasangan kunci-nilai `Delimiter`.

`TimestampField`  
Menentukan bidang JSON yang berisi timestamp untuk catatan. Ini hanya digunakan dengan `RecordParser` `SingleLineJson`. Pasangan kunci-nilai ini opsional. Jika tidak ditentukan, Kinesis Agent for Windows akan menggunakan waktu ketika catatan dibaca sebagai timestamp. Salah satu keuntungan dalam menentukan pasangan kunci-nilai ini adalah statistik latensi yang dihasilkan oleh Kinesis Agent for Windows lebih akurat.

`TimestampFormat`  
Menentukan cara mengurai tanggal dan waktu yang terkait dengan catatan. Nilainya adalah string `epoch` atau string format tanggal/waktu .NET. Jika nilainya adalah `epoch`, waktu diurai berdasarkan waktu UNIX Epoch. Untuk informasi selengkapnya tentang waktu UNIX Epoch, lihat [Waktu Unix](https://en.wikipedia.org/wiki/Unix_time). Untuk informasi lebih lanjut tentang string format tanggal/waktu .NET, lihat [String Format Tanggal dan Waktu Khusus](https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings) dalam dokumentasi Microsoft .NET). Pasangan kunci-nilai ini diperlukan hanya jika parser catatan `Timestamp` ditentukan, atau parser catatan `SingleLineJson` ditentukan bersama dengan pasangan kunci-nilai `TimestampField`. 

`Pattern`  
Menentukan ekspresi reguler yang harus cocok dengan baris pertama dari catatan yang berpotensi multi-baris. Pasangan kunci-nilai ini hanya diperlukan untuk parser catatan `Regex`. 

`ExtractionPattern`  
Menentukan ekspresi reguler yang harus menggunakan grup bernama. Catatan diurai menggunakan ekspresi reguler ini dan grup-grup bernama membentuk bidang catatan yang diurai. Bidang ini kemudian digunakan sebagai dasar untuk membuat objek atau dokumen JSON atau XML yang kemudian dialirkan oleh sink ke berbagai layanan AWS. Pasangan kunci-nilai ini opsional, dan tersedia dengan parser catatan `Regex` dan parser Timestamp.  
Nama grup `Timestamp` diproses secara khusus karena menunjukkan ke parser `Regex` yang bidangnya berisi tanggal dan waktu untuk setiap catatan di setiap berkas log.

`Delimiter`  
Menentukan karakter atau string yang memisahkan setiap item dalam setiap catatan log. Pasangan kunci-nilai ini harus (dan hanya dapat) digunakan dengan parser catatan `Delimited`. Gunakan urutan dua karakter `\t` untuk mewakili karakter tab.

`HeaderPattern`  
Menentukan ekspresi reguler untuk pencocokan baris dalam berkas log yang berisi sekumpulan header untuk catatan. Jika berkas log tidak berisi informasi header, gunakan pasangan kunci-nilai `Headers` untuk menentukan header implisit. Pasangan kunci-nilai `HeaderPattern` opsional dan hanya berlaku untuk parser catatan `Delimited`.   
Entri header yang kosong (panjang 0) pada kolom menyebabkan data untuk kolom tersebut difilter dari output akhir dari output yang diurai `DirectorySource`.

`Headers`  
Menentukan nama untuk kolom data yang diurai menggunakan pembatas yang ditentukan. Pasangan kunci-nilai ini opsional dan hanya berlaku untuk parser catatan `Delimited`.   
Entri header yang kosong (panjang 0) pada kolom menyebabkan data untuk kolom tersebut difilter dari output akhir dari output yang diurai `DirectorySource`. 

`RecordPattern`  
Menentukan ekspresi reguler yang mengidentifikasi baris dalam berkas log yang berisi data catatan. Selain baris header opsional yang diidentifikasi oleh `HeaderPattern`, baris yang tidak cocok dengan `RecordPattern` yang ditentukan diabaikan selama pemrosesan catatan. Pasangan kunci-nilai ini opsional dan hanya berlaku untuk parser catatan `Delimited`. Jika tidak disediakan, default-nya digunakan untuk mempertimbangkan setiap baris yang tidak cocok dengan `HeaderPattern` opsional atau `CommentPattern` opsional sebagai baris yang berisi data catatan yang dapat diurai.

`CommentPattern`  
Menentukan ekspresi reguler yang mengidentifikasi baris dalam berkas log yang harus dikecualikan sebelum mengurai data dalam berkas log. Pasangan kunci-nilai ini opsional dan hanya berlaku untuk parser catatan `Delimited`. Jika tidak disediakan, default-nya digunakan untuk mempertimbangkan setiap baris yang tidak cocok dengan `HeaderPattern` opsional sebagai baris yang berisi data catatan yang dapat diurai, kecuali jika `RecordPattern` ditentukan.

`TimeZoneKind`  
Menentukan apakah timestamp dalam berkas log harus dianggap dalam zona waktu lokal atau zona waktu UTC. Ini opsional dan default-nya adalah UTC. Satu-satunya nilai yang valid untuk pasangan kunci-nilai ini adalah `Local` atau `UTC`. Timestamp tidak pernah diubah jika `TimeZoneKind` tidak ditentukan atau jika nilainya adalah UTC. Timestamp dikonversi ke UTC jika nilai `TimeZoneKind` adalah `Local` dan sink yang menerima timestamp adalah CloudWatch Logs, atau catatan yang diurai dikirim ke sink lainnya. Tanggal dan waktu yang tersemat dalam pesan tidak dikonversi.

`SkipLines`  
Jika ditentukan, mengontrol jumlah baris yang diabaikan pada awal setiap berkas log sebelum catatan diurai. Ini opsional, dan nilai default-nya adalah 0.

Encoding  
Secara default, Kinesis Agent for Windows dapat secara otomatis mendeteksi pengkodean dari bytemark. Namun, pengkodean otomatis mungkin tidak berfungsi dengan benar pada beberapa format unicode yang lebih lama. Contoh berikut menentukan pengkodean yang diperlukan untuk mengalirkan log Microsoft SQL Server.  

```
"Encoding": "utf-16"
```
Untuk daftar nama pengkodean, lihat [Daftar pengkodean](https://docs.microsoft.com/en-us/dotnet/api/system.text.encoding?view=netframework-4.8#list-of-encodings) dalam dokumentasi Microsoft .NET.

ExtractionRegexOptions  
Anda dapat menggunakan `ExtractionRegexOptions` untuk menyederhanakan ekspresi reguler. Pasangan kunci-nilai ini opsional. Default-nya adalah `"None"`.  
Contoh berikut menentukan bahwa ekspresi `"."` cocok dengan karakter apa pun termasuk `\r\n`.  

```
"ExtractionRegexOptions" = "Multiline"
```
Untuk daftar bidang yang mungkin untuk ExtractionRegexOptions, lihat [RegexOptions Enum](https://docs.microsoft.com/en-us/dotnet/api/system.text.regularexpressions.regexoptions?view=netframework-4.7.2#fields) dalam dokumentasi Microsoft .NET.

### Parser Catatan `Regex`
<a name="directory-source-configuration-regex"></a>



Anda dapat mengurai log teks yang tidak terstruktur menggunakan parser catatan `Regex` bersama dengan pasangan kunci-nilai `TimestampFormat`, `Pattern`, dan `ExtractionPattern`. Misalnya, anggaplah berkas log Anda terlihat seperti berikut:

```
[FATAL][2017/05/03 21:31:00.534][0x00003ca8][0000059c][][ActivationSubSystem][GetActivationForSystemID][0] 'ActivationException.File: EQCASLicensingSubSystem.cpp'
[FATAL][2017/05/03 21:31:00.535][0x00003ca8][0000059c][][ActivationSubSystem][GetActivationForSystemID][0] 'ActivationException.Line: 3999'
```

Anda dapat menentukan ekspresi reguler berikut untuk pasangan kunci-nilai `Pattern` untuk membantu memecah berkas log ke catatan log individu: 

```
^\[\w+\]\[(?<TimeStamp>\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\]   
```

Ekspresi reguler ini cocok dengan urutan berikut:

1. Awal string yang dievaluasi.

1. Satu atau beberapa karakter kata dikurung oleh tanda kurung siku.

1. Satu timestamp dikurung oleh tanda kurung siku. Timestamp cocok dengan urutan berikut:

   1. Tahun dalam empat digit

   1. Satu garis miring ke depan

   1. Bulan dalam dua digit

   1. Satu garis miring ke depan

   1. Hari dalam dua digit

   1. Satu spasi

   1. Jam dalam dua digit

   1. Satu tanda titik dua

   1. Menit dalam dua digit

   1. Satu tanda titik dua

   1. Detik dalam dua digit

   1. Satu titik

   1. Milidetik dalam tiga digit

Anda dapat menentukan format berikut untuk pasangan kunci-nilai `TimestampFormat` untuk mengonversi timestamp tekstual menjadi tanggal dan waktu:

```
yyyy/MM/dd HH:mm:ss.fff
```

Anda dapat menggunakan ekspresi reguler berikut untuk mengekstraksi bidang catatan log melalui pasangan kunci-nilai `ExtractionPattern`.

```
^\[(?<Severity>\w+)\]\[(?<TimeStamp>\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\.\d{3})\]\[[^]]*\]\[[^]]*\]\[[^]]*\]\[(?<SubSystem>\w+)\]\[(?<Module>\w+)\]\[[^]]*\] '(?<Message>.*)'$
```

Ekspresi reguler ini cocok dengan grup berikut secara berurutan:

1. `Severity` — Satu atau beberapa karakter kata dikurung oleh tanda kurung siku.

1. `TimeStamp` — Lihat deskripsi sebelumnya untuk timestamp.

1. Tiga urutan dengan nol karakter atau lebih dalam tanda kurung siku tanpa nama dilewati.

1. `SubSystem` — Satu atau beberapa karakter kata dikurung oleh tanda kurung siku.

1. `Module` — Satu atau beberapa karakter kata dikurung oleh tanda kurung siku.

1. Satu urutan dengan nol karakter atau lebih dalam tanda kurung siku tanpa nama dilewati.

1. Satu spasi tanpa nama dilewati.

1. `Message` — Nol karakter atau lebih diapit oleh tanda petik tunggal.

Deklarasi sumber berikut menggabungkan ekspresi reguler ini dan format waktu tanggal untuk memberikan petunjuk lengkap kepada Kinesis Agent for Windows untuk mengurai jenis berkas log ini.

```
{
    "Id": "PrintLog",
    "SourceType": "DirectorySource",
    "Directory": "C:\\temp\\PrintLogTest",
    "FileNameFilter": "*.log",
    "RecordParser": "Regex",
    "TimestampFormat": "yyyy/MM/dd HH:mm:ss.fff",
    "Pattern": "^\\[\\w+\\]\\[(?<TimeStamp>\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\]",
    "ExtractionPattern": "^\\[(?<Severity>\\w+)\\]\\[(?<TimeStamp>\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3})\\]\\[[^]]*\\]\\[[^]]*\\]\\[[^]]*\\]\\[(?<SubSystem>\\w+)\\]\\[(?<Module>\\w+)\\]\\[[^]]*\\] '(?<Message>.*)'$",
    "TimeZoneKind": "UTC"
}
```

**catatan**  
Garis miring terbalik dalam file berformat JSON harus dihapus dengan garis miring terbalik tambahan.

Untuk informasi selengkapnya tentang ekspresi reguler, lihat [Bahasa Ekspresi Reguler - Referensi Cepat](https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference) dalam dokumentasi Microsoft .NET.

### Parser Catatan `Delimited`
<a name="directory-source-configuration-delimited"></a>

Anda dapat menggunakan parser catatan `Delimited` untuk mengurai file log dan data semi terstruktur yang memiliki urutan karakter yang konsisten yang memisahkan setiap kolom data di setiap baris data. Misalnya, file CSV menggunakan koma untuk memisahkan setiap kolom data, dan file TSV menggunakan tab.

Anggaplah Anda ingin mengurai berkas log [Format Basis Data NPS](https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc771748(v=ws.10)) Microsoft yang dihasilkan oleh server kebijakan Jaringan. File seperti itu mungkin terlihat seperti berikut:

```
"NPS-MASTER","IAS",03/22/2018,23:07:55,1,"user1","Domain1\user1",,,,,,,,0,"192.168.86.137","Nate - Test 1",,,,,,,1,,0,"311 1 192.168.0.213 03/15/2018 08:14:29 1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"Use Windows authentication for all users",1,,,,
"NPS-MASTER","IAS",03/22/2018,23:07:55,3,,"Domain1\user1",,,,,,,,0,"192.168.86.137","Nate - Test 1",,,,,,,1,,16,"311 1 192.168.0.213 03/15/2018 08:14:29 1",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"Use Windows authentication for all users",1,,,,
```

Contoh file konfigurasi `appsettings.json` berikut mencakup deklarasi `DirectorySource` yang menggunakan parser catatan `Delimited` untuk mengurai teks ini menjadi representasi objek. File tersebut kemudian mengalirkan data berformat JSON ke Kinesis Data Firehose:

```
{
    "Sources": [
        {
            "Id": "NPS",
            "SourceType": "DirectorySource",
            "Directory": "C:\\temp\\NPS",
            "FileNameFilter": "*.log",
            "RecordParser": "Delimited",
            "Delimiter": ",",
            "Headers": "ComputerName,ServiceName,Record-Date,Record-Time,Packet-Type,User-Name,Fully-Qualified-Distinguished-Name,Called-Station-ID,Calling-Station-ID,Callback-Number,Framed-IP-Address,NAS-Identifier,NAS-IP-Address,NAS-Port,Client-Vendor,Client-IP-Address,Client-Friendly-Name,Event-Timestamp,Port-Limit,NAS-Port-Type,Connect-Info,Framed-Protocol,Service-Type,Authentication-Type,Policy-Name,Reason-Code,Class,Session-Timeout,Idle-Timeout,Termination-Action,EAP-Friendly-Name,Acct-Status-Type,Acct-Delay-Time,Acct-Input-Octets,Acct-Output-Octets,Acct-Session-Id,Acct-Authentic,Acct-Session-Time,Acct-Input-Packets,Acct-Output-Packets,Acct-Terminate-Cause,Acct-Multi-Ssn-ID,Acct-Link-Count,Acct-Interim-Interval,Tunnel-Type,Tunnel-Medium-Type,Tunnel-Client-Endpt,Tunnel-Server-Endpt,Acct-Tunnel-Conn,Tunnel-Pvt-Group-ID,Tunnel-Assignment-ID,Tunnel-Preference,MS-Acct-Auth-Type,MS-Acct-EAP-Type,MS-RAS-Version,MS-RAS-Vendor,MS-CHAP-Error,MS-CHAP-Domain,MS-MPPE-Encryption-Types,MS-MPPE-Encryption-Policy,Proxy-Policy-Name,Provider-Type,Provider-Name,Remote-Server-Address,MS-RAS-Client-Name,MS-RAS-Client-Version",
            "TimestampField": "{Record-Date} {Record-Time}",
            "TimestampFormat": "MM/dd/yyyy HH:mm:ss"
        }
    ],
    "Sinks": [
        {
            "Id": "npslogtest",
            "SinkType": "KinesisFirehose",
            "Region": "us-west-2",
            "StreamName": "npslogtest",
            "Format": "json"
        }
    ],
    "Pipes": [
        {
            "Id": "W3SVCLog1ToKinesisStream",
            "SourceRef": "NPS",
            "SinkRef": "npslogtest"
        }
    ]
}
```

Data berformat JSON yang dialirkan ke Kinesis Data Firehose terlihat seperti berikut:

```
{
    "ComputerName": "NPS-MASTER",
    "ServiceName": "IAS",
    "Record-Date": "03/22/2018",
    "Record-Time": "23:07:55",
    "Packet-Type": "1",
    "User-Name": "user1",
    "Fully-Qualified-Distinguished-Name": "Domain1\\user1",
    "Called-Station-ID": "",
    "Calling-Station-ID": "",
    "Callback-Number": "",
    "Framed-IP-Address": "",
    "NAS-Identifier": "",
    "NAS-IP-Address": "",
    "NAS-Port": "",
    "Client-Vendor": "0",
    "Client-IP-Address": "192.168.86.137",
    "Client-Friendly-Name": "Nate - Test 1",
    "Event-Timestamp": "",
    "Port-Limit": "",
    "NAS-Port-Type": "",
    "Connect-Info": "",
    "Framed-Protocol": "",
    "Service-Type": "",
    "Authentication-Type": "1",
    "Policy-Name": "",
    "Reason-Code": "0",
    "Class": "311 1 192.168.0.213 03/15/2018 08:14:29 1",
    "Session-Timeout": "",
    "Idle-Timeout": "",
    "Termination-Action": "",
    "EAP-Friendly-Name": "",
    "Acct-Status-Type": "",
    "Acct-Delay-Time": "",
    "Acct-Input-Octets": "",
    "Acct-Output-Octets": "",
    "Acct-Session-Id": "",
    "Acct-Authentic": "",
    "Acct-Session-Time": "",
    "Acct-Input-Packets": "",
    "Acct-Output-Packets": "",
    "Acct-Terminate-Cause": "",
    "Acct-Multi-Ssn-ID": "",
    "Acct-Link-Count": "",
    "Acct-Interim-Interval": "",
    "Tunnel-Type": "",
    "Tunnel-Medium-Type": "",
    "Tunnel-Client-Endpt": "",
    "Tunnel-Server-Endpt": "",
    "Acct-Tunnel-Conn": "",
    "Tunnel-Pvt-Group-ID": "",
    "Tunnel-Assignment-ID": "",
    "Tunnel-Preference": "",
    "MS-Acct-Auth-Type": "",
    "MS-Acct-EAP-Type": "",
    "MS-RAS-Version": "",
    "MS-RAS-Vendor": "",
    "MS-CHAP-Error": "",
    "MS-CHAP-Domain": "",
    "MS-MPPE-Encryption-Types": "",
    "MS-MPPE-Encryption-Policy": "",
    "Proxy-Policy-Name": "Use Windows authentication for all users",
    "Provider-Type": "1",
    "Provider-Name": "",
    "Remote-Server-Address": "",
    "MS-RAS-Client-Name": "",
    "MS-RAS-Client-Version": ""
}
```

### Parser Catatan `SysLog`
<a name="directory-source-configuration-syslog"></a>

Untuk parser catatan `SysLog`, output yang diurai dari sumber mencakup informasi berikut: 


| Atribut | Jenis | Deskripsi | 
| --- | --- | --- | 
| SysLogTimeStamp | Rangkaian | Tanggal dan waktu asli dari berkas log berformat syslog. | 
| Hostname | Rangkaian | Nama komputer tempat berkas log berformat syslog berada. | 
| Program | Rangkaian | Nama aplikasi atau layanan yang menghasilkan berkas log. | 
| Message | Rangkaian | Pesan log yang dihasilkan oleh aplikasi atau layanan. | 
| TimeStamp | Rangkaian | Tanggal dan waktu yang diurai dalam format ISO 8601. | 

Berikut ini contoh data SysLog yang diubah menjadi JSON:

```
{
    "SysLogTimeStamp": "Jun 18 01:34:56",
    "Hostname": "myhost1.example.mydomain.com",
    "Program": "mymailservice:",
    "Message": "Info: ICID 123456789 close",
    "TimeStamp": "2017-06-18T01:34.56.000"
}
```

### Summary
<a name="directory-source-configuration-summary"></a>

Berikut adalah ringkasan dari pasangan kunci-nilai yang tersedia untuk sumber `DirectorySource` dan `RecordParser` yang terkait dengan pasangan kunci-nilai tersebut.


| Nama Kunci | RecordParser | Catatan | 
| --- | --- | --- | 
| SourceType | Diperlukan untuk semua | Harus memiliki nilai DirectorySource | 
| Directory | Diperlukan untuk semua |  | 
| FileNameFilter | Opsional untuk semua |  | 
| RecordParser | Diperlukan untuk semua |  | 
| TimestampField | Opsi untuk SingleLineJson |  | 
| TimestampFormat | Diperlukan untuk Timestamp, dan diperlukan untuk SingleLineJson jika TimestampField ditentukan |  | 
| Pattern | Diperlukan untuk Regex |  | 
| ExtractionPattern | Opsi untuk Regex | Diperlukan untuk Regex jika sink menentukan format json atau xml | 
| Delimiter | Diperlukan untuk Delimited |  | 
| HeaderPattern | Opsi untuk Delimited |  | 
| Headers | Opsi untuk Delimited |  | 
| RecordPattern | Opsi untuk Delimited |  | 
| CommentPattern | Opsi untuk Delimited |  | 
| TimeZoneKind | Opsional untuk Regex, Timestamp, SysLog, dan SingleLineJson jika bidang timestamp diidentifikasi |  | 
| SkipLines | Opsional untuk semua |  | 

## Konfigurasi ExchangeLogSource
<a name="exchange-source-configuration"></a>

 Jenis `ExchangeLogSource` digunakan untuk mengumpulkan log dari Microsoft Exchange. Exchange menghasilkan log dalam beberapa jenis format log. Jenis sumber ini mengurai semua jenis format log tersebut. Meskipun semua jenis format log tersebut dapat diurai menggunakan jenis `DirectorySource` dengan parser catatan `Regex`, penguraian akan jauh lebih sederhana jika menggunakan `ExchangeLogSource`. Hal ini karena Anda tidak perlu merancang dan memberikan ekspresi reguler untuk format berkas log. Berikut ini adalah contoh deklarasi `ExchangeLogSource`: 

```
{
   "Id": "MyExchangeLog",
   "SourceType": "ExchangeLogSource",
   "Directory": "C:\\temp\\ExchangeLogTest",
   "FileNameFilter": "*.log"
}
```

Semua deklarasi pertukaran dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"ExchangeLogSource"` (wajib).

`Directory`  
Jalur ke direktori yang berisi berkas log (diperlukan).

`FileNameFilter`  
Secara opsional membatasi sekumpulan file dalam direktori tempat data log dikumpulkan berdasarkan pola penamaan file wildcard. Jika pasangan kunci-nilai ini tidak ditentukan, maka secara default, data log dari semua file dalam direktori dikumpulkan.

`TimestampField`  
Nama kolom yang berisi tanggal dan waktu untuk catatan. Pasangan kunci-nilai ini opsional dan tidak perlu ditentukan jika nama bidang adalah `date-time` atau `DateTime`. Sebaliknya, hal itu tidak diperlukan.

## Konfigurasi W3SVCLogSource
<a name="iis-source-configuration"></a>

 Jenis `W3SVCLogSource` digunakan untuk mengumpulkan log dari Internet Information Services (IIS) untuk Windows. 

Berikut ini adalah contoh deklarasi `W3SVCLogSource`: 

```
{
   "Id": "MyW3SVCLog",
   "SourceType": "W3SVCLogSource",
   "Directory": "C:\\inetpub\\logs\\LogFiles\\W3SVC1",
   "FileNameFilter": "*.log"
}
```

Semua deklarasi `W3SVCLogSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"W3SVCLogSource"` (wajib).

`Directory`  
Jalur ke direktori yang berisi berkas log (diperlukan).

`FileNameFilter`  
Secara opsional membatasi sekumpulan file dalam direktori tempat data log dikumpulkan berdasarkan pola penamaan file wildcard. Jika pasangan kunci-nilai ini tidak ditentukan, maka secara default, data log dari semua file dalam direktori dikumpulkan.

## Konfigurasi UlsSource
<a name="sharepoint-source-configuration"></a>

 Jenis `UlsSource` digunakan untuk mengumpulkan log dari Microsoft SharePoint. Berikut ini adalah contoh deklarasi `UlsSource`: 

```
{
    "Id": "UlsSource",
    "SourceType": "UlsSource",
    "Directory": "C:\\temp\\uls",
    "FileNameFilter": "*.log"
}
```

Semua deklarasi `UlsSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"UlsSource"` (wajib).

`Directory`  
Jalur ke direktori yang berisi berkas log (diperlukan).

`FileNameFilter`  
Secara opsional membatasi sekumpulan file dalam direktori tempat data log dikumpulkan berdasarkan pola penamaan file wildcard. Jika pasangan kunci-nilai ini tidak ditentukan, maka secara default, data log dari semua file dalam direktori dikumpulkan.

## Konfigurasi WindowsEventLogSource
<a name="window-event-source-configuration"></a>

Jenis `WindowsEventLogSource` digunakan untuk mengumpulkan peristiwa dari layanan Windows Event Log. Berikut ini adalah contoh deklarasi `WindowsEventLogSource`: 

```
{
    "Id": "mySecurityLog",
    "SourceType": "WindowsEventLogSource",
    "LogName": "Security"
}
```

Semua deklarasi `WindowsEventLogSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"WindowsEventLogSource"` (wajib).

`LogName`  
Peristiwa dikumpulkan dari log yang ditentukan. Nilai umum mencakup `Application`, `Security`, dan `System`, tetapi Anda dapat menentukan nama log peristiwa Windows yang valid. Pasangan kunci-nilai ini wajib diisi.

`Query`  
Secara opsional membatasi peristiwa yang merupakan output dari `WindowsEventLogSource`. Jika pasangan kunci-nilai ini tidak ditentukan, maka secara default, semua peristiwa adalah output. Untuk informasi tentang sintaks nilai ini, lihat [Kueri Peristiwa dan XML Peristiwa](https://msdn.microsoft.com/en-us/library/bb399427(v=vs.90).aspx) dalam dokumentasi Windows. Untuk informasi tentang definisi tingkat log, lihat [Jenis Peristiwa](https://docs.microsoft.com/en-us/windows/desktop/eventlog/event-types) dalam dokumentasi Windows.

`IncludeEventData`  
Secara opsional memungkinkan pengumpulan dan streaming data peristiwa khusus penyedia yang berkaitan dengan peristiwa dari log peristiwa Windows tertentu ketika nilai pasangan kunci-nilai ini adalah `"true"`. Hanya data peristiwa yang dapat berhasil diserialkan yang disertakan. Pasangan kunci-nilai ini opsional, dan jika tidak ditentukan, data peristiwa khusus penyedia tidak dikumpulkan.  
Menyertakan data peristiwa dapat meningkatkan jumlah data yang dialirkan dari sumber ini secara signifikan. Ukuran maksimum sebuah peristiwa dapat 262.143 byte dengan menyertakan data peristiwa.

Output yang diurai dari `WindowsEventLogSource` berisi informasi berikut ini:


| Atribut | Jenis | Deskripsi | 
| --- | --- | --- | 
| EventId | Int | Pengidentifikasi jenis peristiwa tersebut. | 
| Description | Rangkaian | Teks yang menjelaskan detail peristiwa. | 
| LevelDisplayName | Rangkaian | Kategori peristiwa (salah satu dari Kesalahan, Peringatan, Informasi, Audit Keberhasilan, Audit Kegagalan). | 
| LogName | Rangkaian | Tempat peristiwa dicatat (biasanya nilainya adalah Application, Security, dan System, tapi ada banyak kemungkinan). | 
| MachineName | Rangkaian | Komputer yang mencatat peristiwa tersebut. | 
| ProviderName | Rangkaian | Aplikasi atau layanan yang mencatat peristiwa tersebut. | 
| TimeCreated | Rangkaian | Waktu terjadinya peristiwa dalam format ISO 8601. | 
| Index | Int | Letak entri di log. | 
| UserName | Rangkaian | Pembuat entri jika diketahui. | 
| Keywords | Rangkaian | Jenis peristiwa. Nilai standar termasuk AuditFailure (peristiwa audit keamanan yang gagal), AuditSuccess (peristiwa audit keamanan yang berhasil), Classic (peristiwa yang dimunculkan dengan fungsi RaiseEvent), Correlation Hint (peristiwa transfer), SQM (peristiwa Mekanisme Kualitas Layanan), WDI Context (peristiwa konteks Windows Diagnostic Infrastructure), dan WDI Diag (peristiwa diagnostik Windows Diagnostic Infrastructure).  | 
| EventData | Daftar objek | Data tambahan khusus penyedia opsional tentang log peristiwa. Ini hanya disertakan jika nilai untuk pasangan kunci-nilai IncludeEventData adalah "true". | 

Berikut ini contoh peristiwa yang diubah menjadi JSON:

```
{[ 
    "EventId": 7036, 
    "Description": "The Amazon SSM Agent service entered the stopped state.", 
    "LevelDisplayName": "Informational", 
    "LogName": "System", 
    "MachineName": "mymachine.mycompany.com", 
    "ProviderName": "Service Control Manager", 
    "TimeCreated": "2017-10-04T16:42:53.8921205Z", 
    "Index": 462335, 
    "UserName": null, 
    "Keywords": "Classic", 
    "EventData": [ 
    "Amazon SSM Agent", 
    "stopped", 
    "rPctBAMZFhYubF8zVLcrBd3bTTcNzHvY5Jc2Br0aMrxxx==" 
]}
```

## Konfigurasi WindowsEventLogPollingSource
<a name="eventlogpolling-source-configuration"></a>

`WindowsEventLogPollingSource` menggunakan mekanisme berbasis polling untuk mengumpulkan semua peristiwa baru dari log peristiwa yang cocok dengan parameter yang dikonfigurasi. Interval polling diperbarui secara dinamis antara 100 md dan 5000 md tergantung pada berapa banyak peristiwa yang dikumpulkan selama polling terakhir. Berikut ini adalah contoh deklarasi `WindowsEventLogPollingSource`:

```
{
    "Id": "MySecurityLog",
    "SourceType": "WindowsEventLogPollingSource",
    "LogName": "Security",
    "IncludeEventData": "true",
    "Query": "",
    "CustomFilters": "ExcludeOwnSecurityEvents"
}
```

Semua deklarasi `WindowsEventLogPollingSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"WindowsEventLogPollingSource"` (wajib).

`LogName`  
Menentukan log. Pilihan yang valid adalah `Application`, `Security`, `System`, atau log valid lainnya.

`IncludeEventData`  
Opsional. Saat `true`, menetapkan bahwa EventData tambahan disertakan ketika dialirkan sebagai JSON dan XML. Default adalah `false`.

`Query`  
Opsional. Log peristiwa Windows mendukung pembuatan kueri peristiwa menggunakan ekspresi XPath, yang dapat Anda tentukan menggunakan `Query`. Untuk informasi selengkapnya, lihat [Kueri Peristiwa dan XML Peristiwa](https://docs.microsoft.com/en-us/previous-versions/bb399427(v=vs.90)) dalam dokumentasi Microsoft.

`CustomFilters`  
Opsional. Daftar filter dipisahkan oleh titik koma (`;`). Filter berikut dapat ditentukan.    
`ExcludeOwnSecurityEvents`  
Tidak termasuk peristiwa keamanan yang dihasilkan oleh Kinesis Agent for Windows sendiri.

## Konfigurasi WindowsETWEventSource
<a name="etw-source-configuration"></a>

 Jenis `WindowsETWEventSource` digunakan untuk mengumpulkan jejak peristiwa aplikasi dan layanan menggunakan fitur bernama Event Tracing for Windows (ETW). Untuk informasi selengkapnya, lihat [Pelacakan Peristiwa](https://docs.microsoft.com/en-us/windows/desktop/etw/event-tracing-portal) dalam dokumentasi Windows.

Berikut ini adalah contoh deklarasi `WindowsETWEventSource`:

```
{
    "Id": "ClrETWEventSource",
    "SourceType": "WindowsETWEventSource",
    "ProviderName": "Microsoft-Windows-DotNETRuntime",
    "TraceLevel": "Verbose",
    "MatchAnyKeyword": 32768
}
```

Semua deklarasi `WindowsETWEventSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"WindowsETWEventSource"` (wajib).

`ProviderName`  
Menentukan penyedia peristiwa yang harus digunakan untuk mengumpulkan peristiwa pelacakan. Ini harus nama penyedia ETW yang valid untuk penyedia yang diinstal. Untuk menentukan penyedia yang harus diinstal, jalankan perintah berikut di jendela prompt perintah Windows:  

```
logman query providers
```

`TraceLevel`  
Menentukan kategori peristiwa pelacakan yang harus dikumpulkan. Nilai yang diizinkan antara lain `Critical`, `Error`, `Warning`, `Informational`, dan `Verbose`. Arti yang tepat tergantung pada penyedia ETW yang dipilih.

`MatchAnyKeyword`  
Nilai ini adalah angka 64-bit, di mana setiap bit mewakili kata kunci individu. Setiap kata kunci menggambarkan kategori peristiwa yang akan dikumpulkan. Untuk mengetahui kata kunci yang didukung dan nilai-nilainya serta bagaimana kaitannya dengan `TraceLevel`, lihat dokumentasi untuk penyedia tersebut. Misalnya, untuk informasi tentang penyedia CLR ETW, lihat [Kata Kunci dan Tingkat CLR ETW](https://docs.microsoft.com/en-us/dotnet/framework/performance/clr-etw-keywords-and-levels) dalam dokumentasi Microsoft .NET Framework.   
Dalam contoh sebelumnya, 32768 (0x00008000) mewakili `ExceptionKeyword` untuk penyedia CLR ETW yang menginstruksikan penyedia untuk mengumpulkan informasi tentang pengecualian yang dibuat. Meskipun JSON aslinya tidak mendukung konstanta hex, Anda dapat menentukan konstanta hex untuk `MatchAnyKeyword` dengan menempatkan mereka dalam string. Anda juga dapat menentukan beberapa konstanta yang dipisahkan dengan koma. Misalnya, gunakan perintah berikut untuk menentukan `ExceptionKeyword` dan `SecurityKeyword` (0x00000400):  

```
{
   "Id": "MyClrETWEventSource",
   "SourceType": "WindowsETWEventSource",
   "ProviderName": "Microsoft-Windows-DotNETRuntime",
   "TraceLevel": "Verbose",
   "MatchAnyKeyword": "0x00008000, 0x00000400"
}
```
Untuk memastikan bahwa semua kata kunci yang ditentukan diaktifkan untuk penyedia, beberapa nilai kata kunci digabungkan menggunakan OR dan diteruskan ke penyedia itu.

Output dari `WindowsETWEventSource` berisi informasi berikut untuk setiap peristiwa:


| Atribut | Jenis | Deskripsi | 
| --- | --- | --- | 
| EventName | Rangkaian | Jenis peristiwa yang terjadi. | 
| ProviderName | Rangkaian | Penyedia yang mendeteksi peristiwa tersebut. | 
| FormattedMessage | Rangkaian | Ringkasan tekstual peristiwa tersebut. | 
| ProcessID | Int | Proses yang melaporkan peristiwa tersebut. | 
| ExecutingThreadID | Int | Utas dalam proses yang melaporkan peristiwa tersebut. | 
| MachineName | Rangkaian | Nama desktop atau server yang melaporkan peristiwa. | 
| Payload | Hashtable | Tabel dengan kunci string dan segala jenis objek sebagai nilai. Kuncinya adalah nama item muatan, dan nilainya adalah nilai item muatan. Muatan tergantung penyedia. | 

Berikut ini contoh peristiwa yang diubah menjadi JSON:

```
{ 
     "EventName": "Exception/Start", 
     "ProviderName": "Microsoft-Windows-DotNETRuntime", 
     "FormattedMessage": "ExceptionType=System.Exception;\r\nExceptionMessage=Intentionally unhandled exception.;\r\nExceptionEIP=0x2ab0499;\r\nExceptionHRESULT=-2,146,233,088;\r\nExceptionFlags=CLSCompliant;\r\nClrInstanceID=9 ",
     "ProcessID": 3328, 
     "ExecutingThreadID": 6172, 
     "MachineName": "MyHost.MyCompany.com", 
     "Payload": 
      { 
        "ExceptionType": "System.Exception", 
        "ExceptionMessage": "Intentionally unhandled exception.", 
        "ExceptionEIP": 44762265, 
        "ExceptionHRESULT": -2146233088, 
        "ExceptionFlags": 16, 
        "ClrInstanceID": 9 
      } 
}
```

## Konfigurasi WindowsPerformanceCounterSource
<a name="performance-counter-source-configuration"></a>

 Jenis `WindowsPerformanceCounterSource` mengumpulkan metrik pengukur performa dari Windows. Berikut ini adalah contoh deklarasi `WindowsPerformanceCounterSource`: 

```
{
	"Id": "MyPerformanceCounter",
	"SourceType": "WindowsPerformanceCounterSource",
	"Categories": [{
			"Category": "Server",
			"Counters": ["Files Open", "Logon Total", "Logon/sec", "Pool Nonpaged Bytes"]
		},
		{
			"Category": "System",
			"Counters": ["Processes", "Processor Queue Length", "System Up Time"]
		},
		{
			"Category": "LogicalDisk",
			"Instances": "*",
			"Counters": [
				"% Free Space", "Avg. Disk Queue Length",
				{
					"Counter": "Disk Reads/sec",
					"Unit": "Count/Second"
				},
				"Disk Writes/sec"
			]
		},
		{
			"Category": "Network Adapter",
			"Instances": "^Local Area Connection\* \d$",
			"Counters": ["Bytes Received/sec", "Bytes Sent/sec"]
		}
	]
}
```

Semua deklarasi `WindowsPerformanceCounterSource` dapat memberikan pasangan kunci-nilai berikut:

`SourceType`  
Harus berupa string literal `"WindowsPerformanceCounterSource"` (wajib).

`Categories`  
Menentukan serangkaian grup metrik pengukur performa yang harus dikumpulkan dari Windows. Setiap grup metrik berisi pasangan kunci-nilai berikut:    
`Category`  
Menentukan kumpulan metrik pengukur yang akan dikumpulkan (wajib).  
`Instances`  
Menentukan kumpulan objek yang diinginkan ketika ada satu set pengukur performa unik per objek. Misalnya, saat kategori tersebut adalah `LogicalDisk`, ada satu set pengukur performa per drive disk. Pasangan kunci-nilai ini opsional. Anda dapat menggunakan wildcard `*` dan `?` untuk mencocokkan beberapa instans. Untuk menggabungkan nilai di semua instans, tentukan `_Total`.  
Anda juga dapat menggunakan `InstanceRegex`, yang menerima ekspresi reguler yang berisi karakter wildcard `*` sebagai bagian dari nama instans.  
`Counters`  
Menentukan metrik yang harus dikumpulkan untuk kategori yang ditentukan. Pasangan kunci-nilai ini wajib diisi. Anda dapat menggunakan wildcard `*` dan `?` untuk mencocokkan beberapa pengukur. Anda dapat menentukan `Counters` hanya menggunakan nama, atau dengan menggunakan nama dan unit. Jika unit pengukur tidak ditentukan, Kinesis Agent for Windows mencoba menyimpulkan unit dari namanya. Jika kesimpulan tersebut tidak benar, maka unit dapat secara eksplisit ditentukan. Anda dapat mengubah nama `Counter` jika Anda ingin. Representasi yang lebih kompleks dari pengukur adalah objek dengan pasangan kunci-nilai berikut:    
`Counter`  
Nama pengukur. Pasangan kunci-nilai ini wajib diisi.  
`Rename`  
Nama pengukur untuk dihadirkan ke sink. Pasangan kunci-nilai ini opsional.  
`Unit`  
Arti dari nilai yang terkait dengan pengukur. Untuk daftar lengkap nama unit yang valid, lihat dokumentasi unit di [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html) dalam *Referensi API Amazon CloudWatch*.
Berikut ini adalah contoh spesifikasi pengukur yang kompleks:  

```
{
   "Counter": "Disk Reads/sec, 
   "Rename": "Disk Reads per second",
   "Unit": "Count/Second"
}
```

`WindowsPerformanceCounterSource` hanya dapat digunakan dengan pipa yang menentukan sink Amazon CloudWatch. Gunakan sink terpisah jika metrik bawaan Kinesis Agent for Windows juga dialirkan ke CloudWatch. Periksa log Kinesis Agent for Windows setelah startup layanan untuk menentukan unit yang telah disimpulkan untuk pengukur ketika unit belum ditentukan dalam deklarasi `WindowsPerformanceCounterSource`. Gunakan PowerShell untuk menentukan nama yang valid untuk kategori, instans, dan pengukur. 

Untuk melihat informasi tentang semua kategori, termasuk pengukur yang terkait dengan set pengukur, jalankan perintah ini di jendela PowerShell:

```
    Get-Counter -ListSet * | Sort-Object
```

Untuk menentukan instans yang tersedia untuk setiap pengukur di set pengukur, jalankan perintah yang mirip dengan contoh berikut di jendela PowerShell:

```
    Get-Counter -Counter "\Process(*)\% Processor Time"
```

Nilai parameter `Counter` harus merupakan salah satu jalur dari anggota `PathsWithInstances` yang terdaftar oleh invokasi perintah `Get-Counter -ListSet` sebelumnya.

## Sumber Metrik Bawaan Kinesis Agent for Windows
<a name="kinesis-agent-builin-metrics-source"></a>

Selain sumber metrik biasa seperti jenis `WindowsPerformanceCounterSource` (lihat [Konfigurasi WindowsPerformanceCounterSource](#performance-counter-source-configuration)), jenis sink CloudWatch dapat menerima metrik dari sumber khusus yang mengumpulkan metrik tentang Kinesis Agent for Windows itu sendiri. Metrik Kinesis Agent for Windows juga tersedia di kategori `KinesisTap` pengukur performa Windows. 

Pasangan kunci-nilai `MetricsFilter` untuk deklarasi sink CloudWatch menentukan metrik yang dialirkan ke CloudWatch dari sumber metrik bawaan Kinesis Agent for Windows. Nilai adalah string yang berisi satu atau beberapa ekspresi filter yang dipisahkan oleh titik koma; misalnya:

`"MetricsFilter": "`*FilterExpression1*`;`*FilterExpression2*`"`

Metrik yang cocok dengan satu atau beberapa ekspresi filter dialirkan ke CloudWatch.

Metrik instans tunggal bersifat global dan tidak terikat pada sumber atau sink tertentu. Beberapa metrik instans berdimensi berdasarkan `Id` deklarasi sumber atau sink. Setiap jenis sumber atau sink dapat memiliki serangkaian metrik yang berbeda.

Untuk daftar nama metrik bawaan Kinesis Agent for Windows, lihat [Daftar Metrik Kinesis Agent for Windows](#kinesis-agent-metric-list).

Untuk metrik instans tunggal, ekspresi filternya adalah nama metrik; misalnya:

```
"MetricsFilter": "SourcesFailedToStart;SinksFailedToStart"
```

Untuk beberapa metrik instans, ekspresi filternya adalah nama metrik, tanda titik (`.`), lalu `Id` deklarasi sumber atau sink yang dihasilkan metrik tersebut. Misalnya, anggaplah ada deklarasi sink dengan `Id` dari `MyFirehose`:

```
"MetricsFilter": "KinesisFirehoseRecordsFailedNonrecoverable.MyFirehose"      
```

Anda dapat menggunakan pola wildcard khusus yang dirancang untuk membedakan antara metrik instans tunggal dan metrik instans lebih dari satu.
+ Tanda bintang (`*`) cocok dengan nol karakter atau lebih kecuali tanda titik (`.`).
+ Tanda tanya (`?`) cocok dengan satu karakter kecuali tanda titik.
+ Karakter lain hanya cocok dengan dirinya sendiri.
+ `_Total` adalah token khusus yang menyebabkan agregasi semua pencocokan beberapa nilai instans di seluruh dimensi.

Contoh berikut cocok dengan semua metrik instans tunggal:

```
"MetricsFilter": "*"
```

Karena tanda bintang tidak cocok dengan karakter titik, hanya metrik instans tunggal yang disertakan.

Contoh berikut cocok dengan semua metrik instans yang lebih dari satu:

```
"MetricsFilter": "*.*"
```

Contoh berikut cocok dengan semua metrik (satu maupun lebih):

```
"MetricsFilter": "*;*.*"
```

Contoh berikut mengumpulkan semua metrik instans lebih dari satu di semua sumber dan sink:

```
"MetricsFilter": "*._Total"
```

Contoh berikut mengumpulkan semua metrik Kinesis Data Firehose untuk semua sink Kinesis Data Firehose:

```
"MetricsFilter": "*Firehose*._Total"
```

Contoh berikut cocok dengan semua metrik kesalahan instans satu maupun lebih:

```
"MetricsFilter": "*Failed*;*Error*.*;*Failed*.*"
```

Contoh berikut cocok dengan semua metrik kesalahan yang tidak dapat dipulihkan yang dikumpulkan di semua sumber dan sink:

```
"MetricsFilter": "*Nonrecoverable*._Total"
```



Untuk informasi selengkapnya tentang cara menentukan pipa yang menggunakan sumber metrik bawaan Kinesis Agent for Windows, lihat [Mengonfigurasi Alur Metrik Kinesis Agent for Windows](pipe-object-declarations.md#kinesis-agent-metric-pipe-configuration).

## Daftar Metrik Kinesis Agent for Windows
<a name="kinesis-agent-metric-list"></a>

Berikut ini adalah daftar metrik instans tunggal dan metrik instans lebih dari satu yang tersedia untuk Kinesis Agent for Windows.

### Metrik Instans Tunggal
<a name="single-instance-metrics"></a>

Metrik instans tunggal berikut tersedia:

`KinesisTapBuildNumber`  
Nomor versi Kinesis Agent for Windows.

`PipesConnected`  
Jumlah pipa yang berhasil menghubungkan sumber ke sink.

`PipesFailedToConnect`  
Jumlah pipa yang tidak berhasil menghubungkan sumber ke sink.

`SinkFactoriesFailedToLoad`  
Jumlah jenis sink yang tidak berhasil dimuat ke Kinesis Agent for Windows.

`SinkFactoriesLoaded`  
Jumlah jenis sink yang berhasil dimuat ke Kinesis Agent for Windows.

`SinksFailedToStart`  
Jumlah sink yang tidak berhasil dimulai, biasanya karena deklarasi sink salah.

`SinksStarted`  
Jumlah sink yang berhasil dimulai.

`SourcesFailedToStart`  
Jumlah sumber yang tidak berhasil dimulai, biasanya karena deklarasi sumber salah.

`SourcesStarted`  
Jumlah sumber yang berhasil dimulai.

`SourceFactoriesFailedToLoad`  
Jumlah jenis sumber yang tidak berhasil dimuat ke Kinesis Agent for Windows.

`SourceFactoriesLoaded`  
Jumlah jenis sumber yang berhasil dimuat ke Kinesis Agent for Windows.

### Metrik instans Lebih dari Satu
<a name="multiple-instance-metrics"></a>

Metrik instans lebih dari satu berikut tersedia:

#### Metrik DirectorySource
<a name="directory-source-metrics"></a>

`DirectorySourceBytesRead`  
Besar byte yang dibaca selama interval untuk `DirectorySource` ini.

`DirectorySourceBytesToRead`  
Besar byte yang diketahui dan tersedia untuk dibaca tetapi belum dibaca oleh Kinesis Agent for Windows.

`DirectorySourceFilesToProcess`  
Jumlah file yang diketahui untuk diperiksa tetapi belum diperiksa oleh Kinesis Agent for Windows.

`DirectorySourceRecordsRead`  
Jumlah catatan yang sudah dibaca selama interval untuk `DirectorySource` ini.

#### Metrik WindowsEventLogSource
<a name="windows-event-log-source-metrics"></a>

`EventLogSourceEventsError`  
Jumlah log acara peristiwa Windows yang tidak berhasil dibaca.

`EventLogSourceEventsRead`  
Jumlah log acara peristiwa Windows yang berhasil dibaca.

#### Metrik Sink KinesisFirehose
<a name="kinesis-firehose-sink-metrics"></a>

`KinesisFirehoseBytesAccepted`  
Besar byte yang diterima selama interval.

`KinesisFirehoseClientLatency`  
Selang waktu antara pembuatan catatan dan streaming catatan ke layanan Kinesis Data Firehose.

`KinesisFirehoseLatency`  
Selang waktu antara awal dan akhir streaming catatan ke layanan Kinesis Data Firehose.

`KinesisFirehoseNonrecoverableServiceErrors`  
Berapa kali data tidak dapat dikirim tanpa kesalahan ke layanan Kinesis Data Firehose meskipun ada percobaan ulang.

`KinesisFirehoseRecordsAttempted`  
Jumlah catatan yang dicoba dialirkan ke layanan Kinesis Data Firehose.

`KinesisFirehoseRecordsFailedNonrecoverable`  
Jumlah catatan yang tidak berhasil dialirkan ke layanan Kinesis Data Firehose meskipun sudah dicoba ulang.

`KinesisFirehoseRecordsFailedRecoverable`  
Jumlah catatan yang berhasil dialirkan ke layanan Kinesis Data Firehose, tetapi hanya dengan dicoba ulang.

`KinesisFirehoseRecordsSuccess`  
Jumlah catatan yang berhasil dialirkan ke layanan Kinesis Data Firehose tanpa dicoba ulang.

`KinesisFirehoseRecoverableServiceErrors`  
Berapa kali catatan berhasil dikirim ke layanan Kinesis Data Firehose, tetapi hanya dengan dicoba ulang.

#### Metrik KinesisStream
<a name="kinesis-stream-metrics"></a>

`KinesisStreamBytesAccepted`  
Besar byte yang diterima selama interval.

`KinesisStreamClientLatency`  
Selang waktu antara pembuatan catatan dan streaming catatan ke layanan Kinesis Data Streams.

`KinesisStreamLatency`  
Selang waktu antara awal dan akhir streaming catatan ke layanan Kinesis Data Streams.

`KinesisStreamNonrecoverableServiceErrors`  
Berapa kali catatan tidak dapat dikirim tanpa kesalahan ke layanan Kinesis Data Streams meskipun dicoba ulang.

`KinesisStreamRecordsAttempted`  
Jumlah catatan yang dicoba dialirkan ke layanan Kinesis Data Streams.

`KinesisStreamRecordsFailedNonrecoverable`  
Jumlah catatan yang tidak berhasil dialirkan ke layanan Kinesis Data Streams meskipun sudah dicoba ulang.

`KinesisStreamRecordsFailedRecoverable`  
Jumlah catatan yang berhasil dialirkan ke layanan Kinesis Data Streams, tetapi hanya dengan dicoba ulang.

`KinesisStreamRecordsSuccess`  
Jumlah catatan yang berhasil dialirkan ke layanan Kinesis Data Streams tanpa dicoba ulang.

`KinesisStreamRecoverableServiceErrors`  
Berapa kali catatan berhasil dikirim ke layanan Kinesis Data Streams, tetapi hanya dengan dicoba ulang.

#### Metrik CloudWatchLog
<a name="cloud-watch-log-metrics"></a>

`CloudWatchLogBytesAccepted`  
Besar byte yang diterima selama interval.

`CloudWatchLogClientLatency`  
Selang waktu antara pembuatan catatan dan streaming catatan ke layanan CloudWatch Logs.

`CloudWatchLogLatency`  
Selang waktu antara awal dan akhir streaming catatan ke layanan CloudWatch Logs.

`CloudWatchLogNonrecoverableServiceErrors`  
Berapa kali catatan tidak dapat dikirim tanpa kesalahan ke layanan CloudWatch Logs meskipun dicoba ulang.

`CloudWatchLogRecordsAttempted`  
Jumlah catatan yang dicoba dialirkan ke layanan CloudWatch Logs.

`CloudWatchLogRecordsFailedNonrecoverable`  
Jumlah catatan yang tidak berhasil dialirkan ke layanan CloudWatch Logs meskipun sudah dicoba ulang.

`CloudWatchLogRecordsFailedRecoverable`  
Jumlah catatan yang berhasil dialirkan ke layanan CloudWatch Logs, tetapi hanya dengan dicoba ulang.

`CloudWatchLogRecordsSuccess`  
Jumlah catatan yang berhasil dialirkan ke layanan CloudWatch Logs tanpa dicoba ulang.

`CloudWatchLogRecoverableServiceErrors`  
Jumlah catatan yang berhasil dikirim ke layanan CloudWatch Logs, tetapi hanya dengan dicoba ulang.

#### Metrik CloudWatch
<a name="cloud-watch-metrics"></a>

`CloudWatchLatency`  
Rata-rata selang waktu antara awal dan akhir streaming metrik untuk layanan CloudWatch.

`CloudWatchNonrecoverableServiceErrors`  
Berapa kali metrik tidak dapat dikirim tanpa kesalahan ke layanan CloudWatch meskipun dicoba ulang.

`CloudWatchRecoverableServiceErrors`  
Berapa kali metrik dikirim tanpa kesalahan ke layanan CloudWatch tetapi hanya dengan dicoba ulang.

`CloudWatchServiceSuccess`  
Berapa kali metrik dikirim tanpa kesalahan ke layanan CloudWatch tanpa perlu dicoba ulang.

## Konfigurasi Bookmark
<a name="advanced-source-configuration"></a>

 Secara default, Kinesis Agent for Windows mengirimkan catatan log ke sink yang dibuat setelah agen memulai. Terkadang mengirim catatan log sebelumnya berguna, misalnya, catatan log yang dibuat selama periode waktu ketika Kinesis Agent for Windows berhenti selama pembaruan otomatis. Fitur bookmark melacak catatan yang telah dikirim ke sink. Ketika dalam mode bookmark dan dimulai, Kinesis Agent for Windows akan mengirimkan semua catatan log yang dibuat setelah Kinesis Agent for Windows berhenti, bersama dengan catatan log yang kemudian dibuat. Untuk mengontrol perilaku ini, deklarasi sumber berbasis file secara opsional dapat menyertakan pasangan kunci-nilai berikut: 

`InitialPosition`  
Menentukan situasi awal untuk bookmark. Kemungkinan nilainya adalah sebagai berikut:    
`EOS`  
Menentukan akhir aliran (EOS). Hanya catatan log yang dibuat saat agen berjalan yang dikirim ke sink.  
`0`  
Semua catatan log dan peristiwa yang tersedia awalnya dikirim. Kemudian bookmark dibuat untuk memastikan bahwa setiap catatan log dan peristiwa baru yang dibuat setelah bookmark dibuat akhirnya dikirim, baik Kinesis Agent for Windows sedang berjalan atau tidak.  
`Bookmark`  
Bookmark diinisialisasi tepat setelah catatan log atau peristiwa terbaru. Kemudian bookmark dibuat untuk memastikan bahwa setiap catatan log dan peristiwa baru yang dibuat setelah bookmark dibuat akhirnya dikirim, baik Kinesis Agent for Windows sedang berjalan atau tidak.  
Bookmark diaktifkan secara default. File disimpan dalam direktori `%ProgramData%\Amazon\KinesisTap`.  
`Timestamp`  
Catatan log dan peristiwa yang dibuat setelah nilai `InitialPositionTimestamp` (definisi berikut) dikirim. Kemudian bookmark dibuat untuk memastikan bahwa setiap catatan log dan peristiwa baru yang dibuat setelah bookmark dibuat akhirnya dikirim, baik Kinesis Agent for Windows berjalan atau tidak.

`InitialPositionTimestamp`  
Menentukan catatan log paling awal atau timestamp peristiwa yang Anda inginkan. Tentukan pasangan kunci-nilai ini hanya ketika `InitialPosition` memiliki nilai dari `Timestamp`.

`BookmarkOnBufferFlush`  
 Pengaturan ini dapat ditambahkan ke sumber yang dapat di-bookmark. Ketika diatur ke `true`, memastikan bahwa pembaruan bookmark terjadi hanya ketika sink berhasil mengirimkan peristiwa ke AWS. Anda hanya dapat berlangganan sink tunggal ke satu sumber. Jika Anda mengirimkan log ke beberapa tujuan, duplikasi sumber Anda untuk menghindari potensi masalah kehilangan data.

Jika Kinesis Agent for Windows telah berhenti untuk waktu yang lama, bookmark tersebut mungkin perlu dihapus karena catatan log dan peristiwa yang di-bookmark mungkin tidak lagi ada. File bookmark untuk *id sumber* yang diberikan terletak di `%PROGRAMDATA%\Amazon\AWSKinesisTap\source id.bm`.

Bookmark tidak bekerja pada file yang diganti nama atau dipotong. Karena sifat peristiwa ETW dan pengukur performa, file tersebut tidak dapat di-bookmark.