summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.rr.yaml42
-rw-r--r--CHANGELOG.md52
-rw-r--r--schemas/config/2.0.schema.json110
3 files changed, 165 insertions, 39 deletions
diff --git a/.rr.yaml b/.rr.yaml
index ccde86bf..6fdbd648 100644
--- a/.rr.yaml
+++ b/.rr.yaml
@@ -190,6 +190,13 @@ temporal:
#
# Optional section
metrics:
+
+ # ---- Prometheus
+
+ # Metrics driver to use
+ #
+ # Optional, default: prometheus. Available values: prometheus, statsd
+ driver: prometheus
# Server metrics address
#
# Required for the production. Default: 127.0.0.1:9091, for the metrics 127.0.0.1:9091/metrics
@@ -204,6 +211,41 @@ temporal:
# Default: (empty)
prefix: "foobar"
+ # ---- Statsd (uncomment)
+
+ # Metrics driver to use
+ #
+ # Optional, default: prometheus. Available values: prometheus, statsd
+ # driver: statsd
+
+ # Statsd host and port
+ #
+ # Optional, default: 127.0.0.1:8125
+ # host_port: "127.0.0.1:8125"
+
+ # Prefix for the metrics
+ #
+ # Optional, default: empty
+ # prefix: "samples"
+
+ # Flush interval is the maximum interval for sending packets.
+ #
+ # Optional, default: 1s
+ # flush_interval: 1s
+
+ # Flush bytes specifies the maximum udp packet size you wish to send.
+ # If FlushBytes is unspecified, it defaults to 1432 bytes, which is
+ # considered safe for local traffic
+ #
+ # Optional, default: 1432
+ # flush_bytes: 1432
+
+ # Tags passed to the statsd on init
+ #
+ # Optional, default: empty
+ #tags:
+ # - foo: bar
+
# Activities pool settings.
activities:
# Debug mode for the pool. In this mode, pool will not pre-allocate the worker. Worker (only 1, num_workers ignored) will be allocated right after the request arrived.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b4fe11bb..f6b2a306 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,57 @@
# CHANGELOG
+## v2.11.2 (13.09.2022)
+
+## ๐Ÿ‘€ New:
+
+- โœ **Kafka plugin**: **[ โš ๏ธ EXPERIMENTAL OPTION โš ๏ธ ]** Kafka plugin now waits for 1 minute (automatically) for the broker to be available, [FR](https://github.com/roadrunner-server/roadrunner/issues/1267), (thanks @Baiquette)
+- โœ **Internal**: PHP Worker now uses an [FSM](https://en.wikipedia.org/wiki/Finite-state_machine) to transition between states (`working`, `ready`, `invalid`, etc).
+- โœ **Internal**: `./rr reset` now works in parallel. All workers will be restarted simultaneously instead of a one-by-one sync approach.
+- โœ **Internal**: `./rr reset` and destroy (when stopping RR) now gracefully stop the workers (giving a chance for the finalizers to work). If the worker doesn't respond in 10 seconds, it'll be killed.
+
+-
+## ๐Ÿฉน Fixes:
+
+- ๐Ÿ› **SQS plugin**: Incorrect detection of the `AWS IMDSv2` instances, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1250) (thanks @paulermo)
+- ๐Ÿ› **Temporal plugin**: Segmentation violation when using TLS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1278), (thanks @seregazhuk)
+- ๐Ÿ› **NATS plugin**: Properly check the `stream not found` error from NATS, [BUG](https://github.com/roadrunner-server/roadrunner/issues/1274), (thanks @pjtuxe)
+
+## ๐Ÿงน Chore:
+
+- ๐Ÿง‘โ€๐Ÿญ: **Temporal plugin**: Support for the `statsd` daemon for stats aggregation, [FR](https://github.com/temporalio/roadrunner-temporal/issues/265), (thanks @cv65kr)
+Configuration stays the same (**no breaking changes**), but additionally, you may specify a `driver`:
+
+**Prometheus:**
+```yaml
+temporal:
+ address: "127.0.0.1:7233"
+ metrics:
+ driver: prometheus # <---- prometheus used by default (you may omit the driver in this case)
+ address: "127.0.0.1:9095"
+ prefix: "samples"
+ type: "summary"
+ activities:
+ num_workers: 4
+```
+
+**Statsd:**
+```yaml
+temporal:
+ address: "127.0.0.1:7233"
+ metrics:
+ driver: statsd # <---- Should be specified to use a statsd driver
+ host_port: "127.0.0.1:8125"
+ prefix: "samples"
+ flush_interval: 1s
+ flush_bytes: 512
+ tags:
+ - foo: bar
+ activities:
+ num_workers: 4
+```
+
+Detailed description is here: [link](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml#L169)
+
---
## v2.11.1 (25.08.2022)
diff --git a/schemas/config/2.0.schema.json b/schemas/config/2.0.schema.json
index a0721fb1..003e1305 100644
--- a/schemas/config/2.0.schema.json
+++ b/schemas/config/2.0.schema.json
@@ -216,56 +216,88 @@
"type": "string",
"default": "default"
},
- "codec": {
- "description": "Internal temporal communication protocol",
- "type": "string",
- "default": "proto",
- "anyOf": [
- {
- "type": "string",
- "examples": [
- "proto",
- "json"
- ]
- }
- ]
- },
- "debug_level": {
- "description": "Debugging level (only for json codec)",
- "type": "integer",
- "minimum": 0,
- "maximum": 2,
- "default": 0
- },
"metrics": {
"description": "Temporal metrics",
"type": "object",
"default": null,
"properties": {
- "address": {
- "description": "Server metrics address",
- "type": "string",
- "default": "127.0.0.1:9091"
- },
- "type": {
+ "driver": {
+ "description": "Metrics driver to use",
"type": "string",
- "description": "Metrics type",
- "anyOf": [
- {
+ "enum": [
+ "prometheus",
+ "statsd"
+ ],
+ "default": "prometheus"
+ }
+ },
+ "oneOf": [
+ {
+ "properties": {
+ "address": {
+ "description": "Server metrics address",
"type": "string",
- "examples": [
- "summary",
- "histogram"
+ "default": "127.0.0.1:9091"
+ },
+ "type": {
+ "type": "string",
+ "description": "Metrics type",
+ "anyOf": [
+ {
+ "type": "string",
+ "examples": [
+ "summary",
+ "histogram"
+ ]
+ }
]
+ },
+ "prefix": {
+ "description": "Temporal metrics prefix",
+ "type": "string",
+ "default": null
}
- ]
+ }
},
- "prefix": {
- "description": "Temporal metrics prefix",
- "type": "string",
- "default": null
+ {
+ "properties": {
+ "host_port": {
+ "description": "The host and port of the statsd server",
+ "type": "string",
+ "default": "127.0.0.1:8125"
+ },
+ "prefix": {
+ "description": "The prefix to use in reporting to statsd",
+ "type": "string",
+ "default": null
+ },
+ "flush_interval": {
+ "description": "FlushInterval is the maximum interval for sending packets",
+ "type": "string",
+ "default": "1s"
+ },
+ "flush_bytes": {
+ "description": "FlushBytes specifies the maximum udp packet size you wish to send. If FlushBytes is unspecified, it defaults to 1432 bytes, which is considered safe for local traffic.",
+ "type": "integer",
+ "default": 1432
+ },
+ "tags": {
+ "description": "Hashmap with tag:value values",
+ "$ref": "#/definitions/Hashmap"
+ },
+ "tag_prefix": {
+ "description": "Prefix for the tag",
+ "type": "string",
+ "default": null
+ },
+ "tag_separator": {
+ "description": "TagSeparator allows tags to be appended with a separator. If not specified tag keys and values are embedded to the stat name directly.",
+ "type": "string",
+ "default": null
+ }
+ }
}
- }
+ ]
},
"activities": {
"description": "Activities pool settings",