elos is a tool to collect, store and publish various system events (i.e. syslogs, core dumps, measurements obtained from proc- and sys-fs, …) while providing easy access to the collected data.
This Yocto meta layer contains all the recipes needed to build the elos into a Yocto image.
For instructions on using elos, please see
- https://elos-logger.org/
- https://github.com/Elektrobit/elos
- https://elektrobit.github.io/elos/
To quickly build a minimal image with elos installed run ci/docker-run.sh
to enter a docker container with the build environment.
And then run bitbake core-image-minimal
to build the image and runqemu nographic
to run it.
The repositories used to pull elos and its dependencies are set using the "META_ELOS_SRC_REPO_BASE" and "META_ELOS_SRC_REPO_PROTOCOL_PARAM" variables under conf/layer.conf
. The default location
to pull the repositories is "git://github.com/Elektrobit" and the default protocol is "protocol=https". The repositories can be customized according to user preferences by either directly changing these variables in this layer or setting these variables in an other layer with higher priority so that the variables will get over written.
To integrate elos into your embedded linux build by yocto just add this meta-layer and add "elos" to "CORE_IMAGE_EXTRA_INSTALL":
CORE_IMAGE_EXTRA_INSTALL += "elos"
This installes the elos libraries:
- libelos
- libelosplugin
To configure elos features to build add a elos.bbappend
file where you set PACKAGECONFIG
posible values are:
- daemon (on by default)
- tools (on by default)
- plugins (on by default)
- demos
- mocks
- utests
- dlt
- mongodb
Or set/append PACKAGECONFIG_pn_elos
,
To seet the elosd configureaton file edit meta-elos/recipes-core/elos/files/elosd.json
To add the elos daemon (elosd) "daemon" has to be set in PACKAGECONFIG
and then pull in the package "elos-daemon".
CORE_IMAGE_EXTRA_INSTALL += "elos-daemon"
To add the elos tool "tools" must be set in PACKAGECONFIG
and then just pull in the package "elos-daemon".
CORE_IMAGE_EXTRA_INSTALL += "elos-tools"
Following tools are installed:
- elosc
- elos-coredump
To add the elos plugins "plugins" must be set in the PACKAGECONFIG
and then just pull in the package "elos-plugins".
CORE_IMAGE_EXTRA_INSTALL += "elos-plugins"
Following plugins are added:
- backend
- backend_dummy
- backend_json
- backend_sql
- backend_dlt (if dlt PACKAGECONFIG option is set)
- backend_nosql (if mongodb PACKAGECONFIG option is set) ' client
- client_dummy
- scanner
- scanner_kmsg
- scanner_shmem
- scanner_syslog
To add the demos that are part of elos, either add PACKAGECONFIG += "demos"
to your bbapend
file or add to your local.conf
with
PACKAGECONFIG:append:pn-elos = " demos"
. In any case make sure to install the
package:
CORE_IMAGE_EXTRA_INSTALL += "elos-demos"
.
The elos-demo
package depends on additional layers:
- meta-openembedded/meta-oe/
- meta-openembedded/meta-python/
- meta-openembedded/meta-networking/
Following demos are added:
- demo_eloslog
- demo_eventbuffer
- demo_libelos_v2
- demo_scanner_shmem
- elos_log4c_demo
- elosDLT (if dlt PACKAGECONFIG option is set)
- elosMon
- syslog_example
- tinyElosc
To build elos with DLT support, either add PACKAGECONFIG += "dlt"
to your
elos.bbappend
or add PACKAGECONFIG:append:pn-elos = "dlt"
.
Make sure elos plugins and elos demos is added to package the DLT-Plugin and DLT-Demo.
CORE_IMAGE_EXTRA_INSTALL += "elos-plugins elos-demos"
To build elos with MongoDB support, either add PACKAGECONFIG += "mongodb"
to your
elos.bbappend
or add PACKAGECONFIG:append:pn-elos = "mongodb"
.
Make sure elos plugins and elos demos is added to package the MongoDB-Plugin.
CORE_IMAGE_EXTRA_INSTALL += "elos-plugins"
To add the mocklibelos for tests that need to mock elos functions add PACKAGECONFIG += "mocks"
pull in the package "elos-mocks".
CORE_IMAGE_EXTRA_INSTALL += "elos-mocks"
Unit tests of elos are added to the rootfs as follows:
CORE_IMAGE_EXTRA_INSTALL += test-elos-utest"
And building with the PACKAGECONFIG
"utests" enabled.
In additon the PACKAGECONFIG
"mocks" need to be enabled for safu and samconf.
The tests can be executed by using ptest.
The unit tests are used by elos developers to verify that the internal functions are working as expected. In this sense they are classic unit-tests.
The unit tests for samconf and safu are added like this:
CORE_IMAGE_EXTRA_INSTALL += "test-safu-utest test-samconf-utest"
For test-safu-utest
the PACKAGECONFIG
option "utests" needs to be set for safu.
For test-samconf-utest
the PACKAGECONFIG
option "utests" need to to be set for samconf,
and the option "mocks" for safu.
Integration tests to verify that elos works on the target as expected can be added this way:
CORE_IMAGE_EXTRA_INSTALL += "elos-integration"
The integratin tests need the PACKAGECONFIG
options "daemon", "tools" and "plugins" to be set.
The integration tests for samconf and safu are added like this:
CORE_IMAGE_EXTRA_INSTALL += "test-safu-integration test-samconf-integration"
Smoke tests are a subset of integration tests that run faster and give a quick feedback on testing results. The are added this way:
CORE_IMAGE_EXTRA_INSTALL += "elos-smoketests"
These tests should be run in a CI.
Benchmarking of elos is possible with following addition:
CORE_IMAGE_EXTRA_INSTALL += "elos-benchmarks"
MIT License
Copyright (c) [2024] [emlix GmbH, Elektrobit Automotive GmbH]
The full text of the license can be found in the LICENSE file in the repository root directory.
elos is powered by elektrobit automotive gmbh. Elektrobit is an automotive software company and developer of embedded software products for ECU, AUTOSAR, automated driving, connected vehicles and UX. elos isan integrated part of EB corbos Linux – built on Ubuntu is an open-source operating system for high-performance computing, leveraging the rich functionality of Linux while meeting security and industry regulations.- Wolfgang Gehrhardt wolfgang.gehrhardt@emlix.com @gehwolf
- Thomas Brinker thomas.brinker@emlix.com @ThomasBrinker
- Andreas Schickedanz
- Andreas Zdziarstek
- Anja Lehwess-Litzmann
- Annika Schmitt
- Anton Hillerband
- Benedikt Braunger
- Christian Steiger
- Daniel Glöckner
- Fabian Godehardt
- Friedrich Schwedler
- Rainer Müller
- Sabrina Otto
- Stefan Kral
- Thomas Brinker
- Vignesh Jayaraman
- Wolfgang Gehrhardt
The elos logo is the Vombatus ursinus, also known as the bare-nosed wombat, designed from the handwriting word elos. Originator is Anja Lehwess-Litzmann (emlix GmbH). Year 2023. It is licensed under Creative Commons No Derivatives (CC-nd). It shall be used in black on white or HKS43 color.