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
}
]