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