Apache Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system.
Product Component | OS Type | Versioning | Pattern Depth |
---|---|---|---|
Apache Kafka Server | Unix/Windows | Path | Instance-based |
Apache Kafka Cluster | Unix/Windows | Software Instance | Instance |
The pattern discovers Apache Kafka Server deployed on both Unix and Windows systems.
Pattern | Trigger Node | Attribute | Condition | Argument |
---|---|---|---|---|
Apache Kafka Server | DiscoveredProcess | cmd | matches | unix_cmd 'java' windows_cmd 'java' |
and | ||||
args | matches | regex '/libs/kafka_[^/\s]+\.jar' | ||
or | ||||
args | matches | 'kafka\.Kafka' | ||
Apache Kafka Cluster | Software Instance | type | = | 'Apache Kafka Server' |
and | ||||
zoo_family | matches | regex '(\S+:\d+)' |
The trigger process is given a simple identification mapping:
Name | Command | Arguments |
---|---|---|
Apache Kafka Server | unix_cmd 'java' | regex '/libs/kafka_[^/\s]+\.jar' |
Apache Kafka Server | windows_cmd 'java' | regex 'kafka\.Kafka' |
Apache Kafka Cluster | type | regex '(\S+:\d+)' |
The pattern tries to retrieve root from following regular expression:
For Unix based operating systems:
For Windows pattern uses next RegEx:
The pattern also attempts to fetch zookeeper_chroot by following regular expression:
The pattern obtains version information through active
"<install_root>\\bin\\windows\\kafka-topics.bat" --version
<install_root>/bin/kafka-topics.sh --version
and path versioning by following one of the regular expressions:
The pattern obtains configuration information by following regular expression:
The pattern attempts to retrieve port information for zoo_keeper port using following regular expression:
The Apache Kafka server pattern triggers on java process which has '/opt/kafka_2.10-0.8.2.0/bin/../core/build/libs/kafka_2.10*.jar' or '"C:\Program Files (x86)\MicroStrategy\Messaging Services\Kafka\kafka_2.11-0.10.1.0\libs*" kafka.Kafka' in arguments.
The Apache Kafka Cluster patterns triggers on Software Instance which depends on zookeeper host.
The Apache Kafka Server pattern models Software Instance which key is based on location of config file for each instance.
The Apache Kafka Cluster models Software Instance which key is based on zookeeper_chroot, SI type and zookeper service key.
This is version for SI for each instance found:
Updated
Software Instance-Cluster
Cluster member
Kafka Topics are obtained using active command - 'kafka-topics --bootstrap-server 127.0.0.1:<port> --list' and modeled as Details of SoftwareInstance or SoftwareCluster:
The pattern creates the following relationship between Apache Kafka and Apache Zookeeper.
Subject Matter Expert input will be welcome on any other potential approaches not discussed to improving product versioning coverage and depth of Apache Kafka model.
There are no known open issues with this pattern.