Skip to content
Open
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions pipeline/inputs/someip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# SOMEIP

The _someip_ input plugin is used to interact with a SOME/IP communication network to subscribe to events and to exchange request/response with SOME/IP services.

Check warning on line 3 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience. Raw Output: {"message": "[FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 3, "column": 145}}}, "severity": "INFO"}

Check warning on line 3 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience. Raw Output: {"message": "[FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 3, "column": 54}}}, "severity": "INFO"}

Check warning on line 3 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Spelling] Spelling check: 'someip'? Raw Output: {"message": "[FluentBit.Spelling] Spelling check: 'someip'?", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 3, "column": 6}}}, "severity": "INFO"}

This plugin uses the [vsomeip library](https://github.com/COVESA/vsomeip) \(built-in dependency\).

Check warning on line 5 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Spelling] Spelling check: 'vsomeip'? Raw Output: {"message": "[FluentBit.Spelling] Spelling check: 'vsomeip'?", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 5, "column": 23}}}, "severity": "INFO"}
Comment thread
eschabell marked this conversation as resolved.
Outdated

## Configuration Parameters

Check warning on line 7 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Headings] 'Configuration Parameters' should use sentence-style capitalization. Raw Output: {"message": "[FluentBit.Headings] 'Configuration Parameters' should use sentence-style capitalization.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 7, "column": 4}}}, "severity": "INFO"}

The plugin supports the following configuration parameters:

| Key | Description |
| ------------ | ----------- |
| Event | SOME/IP event to subscribe to. The configuration can have multiple events, one on each line. An event is identified by a comma separated list with, "_service ID_, _event ID_, _event group ID 1_, _event group ID 2_, ...". The Event must include at least one _event group ID_, but can be associated with multiple. |

Check warning on line 13 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Ellipses] In general, don't use an ellipsis. Raw Output: {"message": "[FluentBit.Ellipses] In general, don't use an ellipsis.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 13, "column": 233}}}, "severity": "INFO"}

Check warning on line 13 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience. Raw Output: {"message": "[FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 13, "column": 18}}}, "severity": "INFO"}

Check warning on line 13 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Quotes] Commas and periods go inside quotation marks. Raw Output: {"message": "[FluentBit.Quotes] Commas and periods go inside quotation marks.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 13, "column": 1}}}, "severity": "INFO"}
| RPC | SOME/IP request to send when service is available. The configuration can have multiple RPCs, one on each line. An RPC is composed as a comma separated list with, "_service ID_, _service instance_, _method ID_, _request payload_". The request payload should be a should be base64 encoded |

Check warning on line 14 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience. Raw Output: {"message": "[FluentBit.Acronyms] Spell out 'SOME', if it's unfamiliar to the audience.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 14, "column": 18}}}, "severity": "INFO"}

Check warning on line 14 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Quotes] Commas and periods go inside quotation marks. Raw Output: {"message": "[FluentBit.Quotes] Commas and periods go inside quotation marks.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 14, "column": 1}}}, "severity": "INFO"}
Comment thread
eschabell marked this conversation as resolved.
Outdated
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

Comment thread
coderabbitai[bot] marked this conversation as resolved.
## Getting Started

In order to subscribe to SOME/IP events or send request/receive SOME/IP response, you can run the plugin from the command line or through the configuration file:
Comment thread
eschabell marked this conversation as resolved.
Outdated

### Command Line

The **someip** plugin can be enabled with options from the command line:

```bash
$ ./fluent-bit -i someip -p Event=4,1,32768,1 -o stdout
```
Comment thread
eschabell marked this conversation as resolved.
Outdated

### Configuration File

In your main configuration file append the following _Input_ & _Output_ sections:

Check failure on line 30 in pipeline/inputs/someip.md

View workflow job for this annotation

GitHub Actions / runner / vale

[vale] reported by reviewdog 🐶 [FluentBit.Ampersand] Use "and" instead of "&" in content. Raw Output: {"message": "[FluentBit.Ampersand] Use \"and\" instead of \"\u0026\" in content.", "location": {"path": "pipeline/inputs/someip.md", "range": {"start": {"line": 30, "column": 61}}}, "severity": "ERROR"}
Comment thread
eschabell marked this conversation as resolved.
Outdated

{% tabs %}
{% tab title="fluent-bit.conf" %}
```text
[INPUT]
Name someip
Tag in.someip

Event 4,1,32768,1
Event 4,1,32769,2
RPC 4,1,1,CgAQAw==

[OUTPUT]
Name stdout
```
{% endtab %}

{% tab title="fluent-bit.yaml" %}
```yaml
pipeline:
inputs:
- name: someip
Event: '4,1,32768,1'
Event: '4,1,32769,2'
RPC: '4,1,1,CgAQAw=='
```
Comment thread
eschabell marked this conversation as resolved.
Outdated
{% endtab %}
{% endtabs %}

## Testing

Once Fluent Bit is running, you can send some SOME/IP messages using the SOME/IP test service provided.

```bash
$ bin/someip_test_service
2025-02-06 22:18:06.211337 [info] Parsed vsomeip configuration in 0ms
...
Sending event with message Event Number 1
Sent notification for service 4, event 32768
Sending event with message Event Number 2
Sent notification for service 4, event 32768
```

In [Fluent Bit](http://fluentbit.io) we should see the following output:

```bash
$ bin/fluent-bit -i someip -p Event=4,1,32768,1 -o stdout
Fluent Bit v3.2.0
* Copyright (C) 2015-2024 The Fluent Bit Authors
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io

______ _ _ ______ _ _ _____ _____
| ___| | | | | ___ (_) | |____ |/ __ \
| |_ | |_ _ ___ _ __ | |_ | |_/ /_| |_ __ __ / /`' / /'
| _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / \ \ / /
| | | | |_| | __/ | | | |_ | |_/ / | |_ \ V /.___/ /./ /___
\_| |_|\__,_|\___|_| |_|\__| \____/|_|\__| \_/ \____(_)_____/


[2025/02/06 22:12:23] [ info] [fluent bit] version=3.2.0, commit=239b46be20, pid=51044
[2025/02/06 22:12:23] [ info] [storage] ver=1.5.2, type=memory, sync=normal, checksum=off, max_chunks_up=128
[2025/02/06 22:12:23] [ info] [simd ] disabled
[2025/02/06 22:12:23] [ info] [cmetrics] version=0.9.8
[2025/02/06 22:12:23] [ info] [ctraces ] version=0.5.7
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] initializing
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] storage_strategy='memory' (memory only)
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] Received 1 configured events
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] No RPC configured.
...
2025-02-06 22:18:03.130557 [info] vSomeIP 3.5.1 | (default)
2025-02-06 22:18:06.223714 [info] Application/Client 0101 is registering.
2025-02-06 22:18:06.225581 [info] Client [100] is connecting to [101] at /tmp/vsomeip-101 endpoint > 0x79a50c000e30
2025-02-06 22:18:06.230477 [info] REGISTERED_ACK(0101)
2025-02-06 22:18:06.236103 [info] Port configuration missing for [4.1]. Service is internal.
2025-02-06 22:18:06.236923 [info] OFFER(0101): [0004.0001:0.0] (true)
2025-02-06 22:18:06.240237 [info] SUBSCRIBE ACK(0101): [0004.0001.0001.ffff]
Received message for service 4 event = 32768
[0] someip.0: [[1738880288.622425534, {}], {"record type"=>"event", "service"=>4, "instance"=>1, "event"=>32768, "payload"=>"RXZlbnQgTnVtYmVyIDE="}]
Received message for service 4 event = 32768
[0] someip.0: [[1738880290.622781511, {}], {"record type"=>"event", "service"=>4, "instance"=>1, "event"=>32768, "payload"=>"RXZlbnQgTnVtYmVyIDI="}]
...
```


Loading