Working with Events
GridGain can generate events for a variety of operations happening in the cluster and notify your application about those operations. There are many types of events, including cache events, node discovery events, distributed task execution events, and many more.
Enabling Events
In GridGain 9, events are configured cluster-wide, in cluster configuration. Events are organized in channels, each channel tracking one or more event types. You cannot enable or disable individual events, instead you need to disable event channels.
To create an event channel:
cluster config update ignite.eventlog.channels.exampleChannel.events=["USER_AUTHENTICATION_SUCCESS"]
This channel will track the USER_AUTHENTICATION_SUCCESS
, but not trigger yet. For the events to trigger, a sink must be configured. It sends the event information to the configured logger category at the configured level. Currently, only the log
sink type is supported, and it writes output to GridGain log. Here is how you can enable log sink by using the CLI tool:
cluster config update ignite.eventlog.sinks.exampleSink = {type="log", channel="exampleChannel"}
Now, the authorization events will be written to the log. Here is how the event may look like:
2024-06-04 16:19:29:840 +0300 [INFO][%defaultNode%sql-execution-pool-1][EventLog] {"type":"USER_AUTHORIZATION_SUCCESS","timestamp":1717507169840,"productVersion":"{version}","user":{"username":"ignite","authenticationProvider":"basic"},"fields":{"privileges":[{"action":"CREATE_TABLE","on":{"objectType":"TABLE","objectName":"TEST2","schema":"PUBLIC"}}],"roles":["system"]}}
Below is the cluster configuration config in JSON.
{
"ignite" : {
"eventlog" : {
"channels" : [ {
"enabled" : true,
"events" : [ "USER_AUTHENTICATION_SUCCESS" ],
"name" : "exampleChannel"
} ],
"sinks" : [ {
"channel" : "exampleChannel",
"criteria" : "EventLog",
"format" : "JSON",
"level" : "INFO",
"name" : "sampleSink",
"type" : "log"
} ]
}
}
}
Sink Structure
Data sink configuration in GridGain 9 has the following structure:
{
"channel" : "exampleChannel",
"criteria" : "EventLog",
"format" : "JSON",
"level" : "INFO",
"name" : "sampleSink",
"type" : "log"
}
Field | Description |
---|---|
channel |
The name of the event channel the data sink logs data for. |
criteria |
Logging criteria. By default, only EventLog messages are logged. |
format |
Output format. Currently, only |
level |
The level the messages are posted to the log at. Supported values: |
name |
Arbitrary sink name. |
type |
Type of event sink. Currently, only |
Channel Structure
Event channel configuration in GridGain 9 has the following structure:
{
"enabled" : true,
"events" : [ "USER_AUTHENTICATION_SUCCESS" ],
"name" : "exampleChannel"
}
Field | Description |
---|---|
enabled |
Defines if this event channel is enabled. |
events |
The list of events tracked by the event channel. For the full list of event types, see Events List. |
name |
Arbitrary channel name. |
Event Structure
All events in GridGain 9 follow the same basic structure described below. Some events provide additional context in the data
field.
{
"type": "AUTHORIZATION",
"user": { "username": "John", "authenticationProvider": "basic" },
"timestamp": 1715169617,
"productVersion": "3.0.0",
"fields": {}
}
Field | Description |
---|---|
type |
The type of the event. For the full list of event types, see Events List. |
user |
The name of the user, and the authentication provider used to authorize. |
timestamp |
Even time in UNIX epoch time. |
productVersion |
GridGain version used by the client. |
fields |
Event-specific data. |
© 2024 GridGain Systems, Inc. All Rights Reserved. Privacy Policy | Legal Notices. GridGain® is a registered trademark of GridGain Systems, Inc.
Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation.