emqx/apps/emqx_resource
Kjell Winblad 57270fb8fc feat: add support for counters and gauges to the Kafka Bridge
This commit adds support for counters and gauges to the Kafka Brige.
The Kafka bridge uses [Wolff](https://github.com/kafka4beam/wolff) for
the  Kafka connection. Wolff does its own batching and does not use the
batching functionality in `emqx_resource_worker` that is used by other
bridge types. Therefore, the counter events have to be generated by
Wolff. We have added
[telemetry](https://github.com/beam-telemetry/telemetry) events to Wolff
that we hook into to change counters and gauges for the Kafka bridge. The
counter called `matched` does not depend on specific functionality of
any bridge type so the updates of this counter is moved higher up in the
call chain then previously so that it also gets updated for Kafka
bridges.
2022-10-10 14:40:57 -03:00
..
i18n fix: rename queue_max_bytes -> max_queue_bytes 2022-08-30 17:18:54 +08:00
include refactor: change some default values of resource_opts 2022-09-14 15:18:07 +08:00
src feat: add support for counters and gauges to the Kafka Bridge 2022-10-10 14:40:57 -03:00
test refactor(resource): fast resume resource worker if inflight msgs are ACKed 2022-09-17 00:34:30 +08:00
README.md feat: add test cases for batching query 2022-08-10 00:34:35 +08:00
rebar.config style: reformat all remaining apps 2022-04-27 15:51:18 +02:00

emqx_resource

The emqx_resource is a behavior that manages configuration specs and runtime states for resources like mysql or redis backends.

It is intended to be used by the emqx_bridges and all other resources that need CRUD operations to their configs, and need to initialize the states when creating.

There can be foreign references between resource instances via resource-id. So they may find each other via this Id.

The main idea of the emqx resource is to put all the general code in a common lib, including the config operations (like config validation, config dump back to files), and the state management. And we put all the specific codes to the callback modules.

See

  • test/emqx_connector_demo.erl for a minimal emqx_resource implementation;
  • test/emqx_resource_SUITE.erl for examples of emqx_resource usage.