Skip to main content

Sentinel

Type: middleware.http.sentinel

Status: alpha

Reference: https://docs.dapr.io/reference/components-reference/supported-middleware/middleware-sentinel/

Example

apiVersion: cra.diagrid.io/v1beta1
kind: Component
metadata:
name: <name>
spec:
type: middleware.http.sentinel
version: v1
metadata:
# The application name for Sentinel
- name: appName
value: "nodeapp"
# JSON array of circuit breaker rules to handle failures (Optional)
#- name: circuitBreakerRules
# value: |
# [
# {
# resource: POST:/v1.0/invoke/nodeapp/method/neworder,
# minRequestAmount: 5,
# statIntervalMs: 1000,
# maxAllowedRtMs: 50,
# maxSlowRequestRatio: 0.5
# }
# ]
# JSON array of flow control rules to limit request rate (Optional)
#- name: flowRules
# value: |
# [
# {
# resource: POST:/v1.0/invoke/nodeapp/method/neworder,
# threshold: 10,
# tokenCalculateStrategy: 0,
# controlBehavior: 0
# }
# ]
# JSON array of hotspot parameter rules for parameter-based flow control (Optional)
#- name: hotSpotParamRules
# value: |
# [
# {
# resource: POST:/v1.0/invoke/nodeapp/method/neworder,
# paramIdx: 0,
# threshold: 10,
# maxQueueingTimeMs: 500
# }
# ]
# JSON array of isolation rules for thread pool isolation (Optional)
#- name: isolationRules
# value: |
# [
# {
# resource: POST:/v1.0/invoke/nodeapp/method/neworder,
# maxConcurrency: 10,
# maxQueueingTimeMs: 500
# }
# ]
# Directory for Sentinel log files (Optional)
#- name: logDir
# value: "/var/tmp"
# JSON array of system protection rules for overall system protection (Optional)
#- name: systemRules
# value: |
# [
# {
# avgRt: 50,
# maxThread: 10,
# qps: 20
# }
# ]

Metadata

appName (string)

Required - The application name for Sentinel

Example value: nodeapp

circuitBreakerRules (string)

JSON array of circuit breaker rules to handle failures

Example value:

[
{
resource: POST:/v1.0/invoke/nodeapp/method/neworder,
minRequestAmount: 5,
statIntervalMs: 1000,
maxAllowedRtMs: 50,
maxSlowRequestRatio: 0.5
}
]

flowRules (string)

JSON array of flow control rules to limit request rate

Example value:

[
{
resource: POST:/v1.0/invoke/nodeapp/method/neworder,
threshold: 10,
tokenCalculateStrategy: 0,
controlBehavior: 0
}
]

hotSpotParamRules (string)

JSON array of hotspot parameter rules for parameter-based flow control

Example value:

[
{
resource: POST:/v1.0/invoke/nodeapp/method/neworder,
paramIdx: 0,
threshold: 10,
maxQueueingTimeMs: 500
}
]

isolationRules (string)

JSON array of isolation rules for thread pool isolation

Example value:

[
{
resource: POST:/v1.0/invoke/nodeapp/method/neworder,
maxConcurrency: 10,
maxQueueingTimeMs: 500
}
]

logDir (string)

Directory for Sentinel log files

Example value: /var/tmp

systemRules (string)

JSON array of system protection rules for overall system protection

Example value:

[
{
avgRt: 50,
maxThread: 10,
qps: 20
}
]