

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Contributor Insights-Regelsyntax in CloudWatch
<a name="ContributorInsights-RuleSyntax"></a>

In diesem Abschnitt wird die Syntax für Contributor Insights-Regeln erläutert. Verwenden Sie diese Syntax nur, wenn Sie eine Regel erstellen, indem Sie einen JSON-Block eingeben. Wenn Sie den Assistenten zum Erstellen einer Regel verwenden, müssen Sie die Syntax nicht kennen. Weitere Hinweise zum Erstellen von Regeln mit dem Assistenten finden Sie unter [Erstellen Sie eine Contributor Insights-Regel in CloudWatch](ContributorInsights-CreateRule.md).

Bei der Übereinstimmung von Regeln zum Protokollieren von Ereignisfeldnamen und -werten wird zwischen Groß- und Kleinschreibung unterschieden.

Das folgende Beispiel veranschaulicht die Syntax für JSON-Protokolle.

```
{
    "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"
}
```Felder in Contributor Insights-Regeln

Schema  
 Der Wert `Schema` für eine Regel, die CloudWatch Logdaten analysiert, muss immer `{"Name": "CloudWatchLogRule", "Version": 1}` 

LogGroupNames  
 Ein Array von Zeichenfolgen. Für jedes Element im Array können Sie optional `*` am Ende einer Zeichenfolge verwenden, um alle Protokollgruppen mit Namen einzuschließen, die mit diesem Präfix beginnen.   
Seien Sie vorsichtig bei der Verwendung von Platzhaltern mit Protokollgruppennamen. Für jedes Protokollereignis, das einer Regel entspricht, fallen Gebühren an. Wenn Sie versehentlich mehr Protokollgruppen suchen, als Sie beabsichtigten, können unerwartete Gebühren anfallen. Weitere Informationen finden Sie unter [ CloudWatch Amazon-Preise](https://aws.amazon.com/cloudwatch/pricing).

LogGroupARNs  
Wenn Sie diese Regel in einem CloudWatch kontoübergreifenden Observability-Monitoring-Konto erstellen, können Sie `LogGroupARNs` damit Log-Gruppen in Quellkonten angeben, die mit dem Monitoring-Konto verknüpft sind, und Log-Gruppen im Monitoring-Konto selbst angeben. Sie müssen entweder `LogGroupNames` oder `LogGroupARNs` in Ihrer Regel angeben, aber nicht beides.  
 `LogGroupARNs` ist ein Array von Zeichenfolgen. Für jedes Element im Array können Sie es in bestimmten Situationen optional `*` als Platzhalter verwenden. Sie können zum Beispiel `arn:aws:logs:us-west-1:*:log-group/MyLogGroupName2` angeben, um Protokollgruppen mit dem Namen `MyLogGroupName2` in allen Quellkonten und im Überwachungskonto in der Region USA West (Nordkalifornien) festzulegen. Sie können auch `arn:aws:logs:us-west-1:111122223333:log-group/GroupNamePrefix*` angeben, um alle Protokollgruppen in USA-West (Nordkalifornien) in 111122223333 anzugeben, deren Namen mit `GroupNamePrefix` beginnen.  
Sie können keine unvollständige AWS Konto-ID als Präfix mit einem Platzhalter angeben.   
Seien Sie vorsichtig bei der Verwendung von Platzhaltern für Protokollgruppen ARNs. Für jedes Protokollereignis, das einer Regel entspricht, fallen Gebühren an. Wenn Sie versehentlich mehr Protokollgruppen suchen, als Sie beabsichtigten, können unerwartete Gebühren anfallen. Weitere Informationen finden Sie unter [ CloudWatch Amazon-Preise](https://aws.amazon.com/cloudwatch/pricing).

LogFormat  
 Gültige Werte sind `JSON` und `CLF`. 

Contribution (Beitrag)  
 Dieses Objekt enthält ein `Keys`-Array mit bis zu vier Elementen, optional ein einzelnes `ValueOf` und optional ein Array von bis zu vier `Filters`. 

Schlüssel  
 Ein Array mit bis zu vier Protokollfeldern, die als Dimensionen zum Klassifizieren von Contributors verwendet werden. Wenn Sie mehrere Schlüssel eingeben, wird jede eindeutige Kombination von Werten für die Schlüssel als eindeutiger Contributor gezählt. Die Felder müssen mit der JSON-Eigenschaftsformatnotation angegeben werden. 

ValueOf  
 (Optional) Geben Sie dies nur an, wenn Sie `Sum` als Wert von `AggregateOn` angeben. `ValueOf` gibt ein Protokollfeld mit numerischen Werten an. Bei diesem Regeltyp werden die Contributors nach ihrer Summe des Wertes dieses Feldes und nicht nach ihrer Anzahl von Vorkommen in den Protokolleinträgen geordnet. Wenn Sie beispielsweise Contributors nach ihrem `BytesSent`-Gesamtwert über einen Zeitraum hinweg sortieren möchten, würden Sie `ValueOf` auf `BytesSent` setzen und `Sum` für `AggregateOn` angeben. 

Filter  
 Gibt ein Array von bis zu vier Filtern an, um die Protokollereignisse einzuschränken, die im Bericht enthalten sind. Wenn Sie mehrere Filter angeben, wertet Contributor Insights diese mit einem logischen AND-Operator aus. Sie können hiermit irrelevante Protokollereignisse aus Ihrer Suche herausfiltern. Alternativ können Sie einen einzelnen Contributor auswählen, um dessen Verhalten zu analysieren.  
Jedes Element im Array muss ein `Match`-Feld und ein Feld enthalten, das den Typ des zu verwendenden übereinstimmenden Operators angibt.  
Das `Match`-Feld gibt ein Protokollfeld an, das im Filter ausgewertet werden soll. Das Protokollfeld wird mithilfe der JSON-Eigenschaftsformatnotation angegeben.  
Das übereinstimmende Operatorfeld muss eines der folgenden sein: `In`, `NotIn`, `StartsWith`, `GreaterThan`, `LessThan`, `EqualTo`, `NotEqualTo` oder `IsPresent`. Wenn das Operatorfeld `In`, `NotIn` oder `StartsWith` ist, folgt ein Array von Zeichenfolgenwerten, auf die überprüft werden soll. Contributor Insights wertet das Array von Zeichenfolgenwerten mit einem OR-Operator aus. Das Array kann bis zu 10 Zeichenfolgenwerte enthalten.  
Wenn das Operatorfeld `GreaterThan`, `LessThan`, `EqualTo` oder `NotEqualTo` ist, folgt ein einzelner numerischer Wert, mit dem verglichen werden soll.  
Wenn das Operatorfeld `IsPresent` ist, folgt entweder `true` oder `false`. Dieser Operator gleicht Protokollereignisse basierend daraufhin ab, ob das angegebene Protokollfeld in dem Protokollereignis vorhanden ist. `isPresent` funktioniert nur mit Werten im Blattknoten der JSON-Eigenschaften. Beispielsweise wertet ein Filter, der nach Übereinstimmungen mit `c-count` sucht, kein Protokollereignis mit einem Wert von `details.c-count.c1` aus.  
Im Folgenden finden Sie vier Filterbeispiele:  

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

AggregateOn  
 Gültige Werte sind `Count` und `Sum`. Gibt an, ob der Bericht basierend auf der Häufigkeit des Auftretens oder einer Summe der Werte des Feldes aggregiert werden soll, das im `ValueOf`-Feld angegeben ist. 

**JSON-Eigenschaftsformatnotation**

Die Felder `Keys`, `ValueOf` und `Match` folgen dem JSON-Eigenschaftsformat mit Punktnotierung, wobei `$` den Stamm des JSON-Objekts darstellt. Danach folgt ein Punkt und dann eine alphanumerische Zeichenfolge mit dem Namen der Untereigenschaft. Mehrere Eigenschaftenebenen werden unterstützt.

Das erste Zeichen der Zeichenfolge kann nur A-Z oder a-z sein. Die folgenden Zeichen der Zeichenfolge können A-Z, a-z oder 0-9 sein.

Die folgende Liste zeigt gültige Beispiele für das JSON-Eigenschaftsformat:

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

**Zusätzliches Feld in Regeln für CLF-Protokolle**

CLF-Protokollereignisse (Common Log Format) haben keine Namen für die Felder wie JSON. Um die Felder bereitzustellen, die für Contributor Insights-Regeln verwendet werden sollen, kann ein CLF-Protokollereignis als Array mit einem Index beginnend mit `1` behandelt werden. Sie können das erste Feld als **"1"**, das zweite Feld als **"2"** usw. angeben.

Um eine Regel für ein CLF-Protokoll besser lesbar zu machen, können Sie `Fields` verwenden. Auf diese Weise können Sie einen Namensalias für CLF-Feldspeicherorte bereitstellen. Sie können beispielsweise angeben, dass der Speicherort „4" eine IP-Adresse ist. Einmal angegeben, kann `IpAddress` als Eigenschaft in `Keys`, `ValueOf` und `Filters` in der Regel verwendet werden.

Nachfolgend finden Sie ein Beispiel für eine Regel für ein CLF-Protokoll, das das `Fields`-Feld verwendet.

```
{
    "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"
}
```