# 🔍 Description
## Issue References 🔗
This pull request fixes docs issue
## Describe Your Solution 🔧
Correct syntax
## Types of changes 🔖
- [x] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to change)
## Test Plan 🧪
#### Behavior Without This Pull Request ⚰️
<img width="858" alt="image" src="https://github.com/apache/kyuubi/assets/26535726/66a74736-48d9-464d-b8cf-c3886aa1d125">
<img width="855" alt="image" src="https://github.com/apache/kyuubi/assets/26535726/fd6cd267-2fa6-493c-9976-61600ae427a0">
#### Behavior With This Pull Request 🎉
<img width="869" alt="image" src="https://github.com/apache/kyuubi/assets/26535726/adc7b7e0-29bf-4ba3-b96b-fddb14f6053a">
<img width="877" alt="image" src="https://github.com/apache/kyuubi/assets/26535726/1aac5c46-9064-4e34-95a0-16d64e7ef32e">
#### Related Unit Tests
---
# Checklist 📝
- [x] This patch was not authored or co-authored using [Generative Tooling](https://www.apache.org/legal/generative-tooling.html)
**Be nice. Be informative.**
Closes #6234 from pan3793/docs-fix.
Closes #6234
801b5d980 [Cheng Pan] Fix invalid code-block syntax in docs
Authored-by: Cheng Pan <chengpan@apache.org>
Signed-off-by: Cheng Pan <chengpan@apache.org>
(cherry picked from commit cd3ab4bd3e)
Signed-off-by: Cheng Pan <chengpan@apache.org>
81 lines
3.1 KiB
ReStructuredText
81 lines
3.1 KiB
ReStructuredText
.. Licensed to the Apache Software Foundation (ASF) under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The ASF licenses this file to You under the Apache License, Version 2.0
|
|
(the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
.. http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
.. Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
Configure Kyuubi to use Custom EventHandler
|
|
=======================================
|
|
|
|
Kyuubi provide event processing mechanism, it can help us to record some events. Beside the builtin ``JsonLoggingEventHandler``,
|
|
Kyuubi supports custom event handler. It is usually used to write Kyuubi events to some external systems.
|
|
For example, Kafka, ElasticSearch, etc. The ``org.apache.kyuubi.events.handler.CustomEventHandlerProvider`` has a zero-arg constructor,
|
|
it can help us to create a custom EventHandler.
|
|
|
|
.. code-block:: scala
|
|
|
|
package org.apache.kyuubi.events.handler
|
|
|
|
import org.apache.kyuubi.config.KyuubiConf
|
|
import org.apache.kyuubi.events.KyuubiEvent
|
|
|
|
/**
|
|
* Custom EventHandler provider. We can implement it to provide a custom EventHandler.
|
|
* The implementation will be loaded by ``Service Provider Interface``.
|
|
*/
|
|
trait CustomEventHandlerProvider {
|
|
|
|
/**
|
|
* The create method is called to create a custom event handler
|
|
* when this implementation is loaded.
|
|
*
|
|
* @param kyuubiConf The conf can be used to read some configs.
|
|
* @return A custom handler to handle KyuubiEvent.
|
|
*/
|
|
def create(kyuubiConf: KyuubiConf): EventHandler[KyuubiEvent]
|
|
}
|
|
|
|
Build A Custom EventHandler
|
|
----------------------------
|
|
|
|
To create custom EventHandlerProvider class derived from the above interface, we need to:
|
|
|
|
- Referencing the library
|
|
|
|
.. parsed-literal::
|
|
|
|
<dependency>
|
|
<groupId>org.apache.kyuubi</groupId>
|
|
<artifactId>kyuubi-events_2.12</artifactId>
|
|
<version>\ |release|\</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
- Implement ``org.apache.kyuubi.events.handler.CustomEventHandlerProvider``
|
|
- Adding a file named ``org.apache.kyuubi.events.handler.CustomEventHandlerProvider`` in the src/main/resources/META-INF/services folder of project, its content is the custom class name.
|
|
|
|
Enable Custom EventHandler
|
|
----------------------------
|
|
|
|
To enable the custom EventHandler, we need to
|
|
|
|
- Put the jar package to ``$KYUUBI_HOME/jars`` directory to make it visible for
|
|
the classpath of the kyuubi server.
|
|
- Configure the following properties to ``$KYUUBI_HOME/conf/kyuubi-defaults.conf``
|
|
on each node where kyuubi server is installed. If you need use other event handler, it can be appended after the ``CUSTOM``.
|
|
|
|
.. code-block:: property
|
|
|
|
kyuubi.backend.server.event.loggers=CUSTOM
|
|
|
|
- Restart all the kyuubi server instances.
|