mirror of
https://github.com/nsnail/Ocelot.git
synced 2025-04-24 04:32:50 +08:00

* feat: use Https://github.com/ButterflyAPM to monitor each API request monitoring metrics * feat: using DiagnosticSource and Butterfly.OpenTracing * refactor:refactor Ocelot tracing, merge code into OcelotDiagnosticListener * refactor: move OcelotHttpTracingHandler to Requester * fix: Requester\HttpClientBuilder.cs(10,14): error CS0234: The type or namespace name 'Tracing' does not exist in the namespace * feat: add test should_set_up_tracing * feat : Remove extraneous code * feat: remove unused DiagnosticSource diagnostic * fix : test UseTracing * add test should_call_scoped_data_repository_QosProviderError * add test should_return_any_errors * add test HttpClientHttpRequesterTest * it should keep it can not be deleted
305 lines
8.1 KiB
JSON
305 lines
8.1 KiB
JSON
{
|
|
"ReRoutes": [
|
|
{
|
|
"DownstreamPathTemplate": "/api/values",
|
|
"DownstreamScheme": "http",
|
|
"UpstreamPathTemplate": "/api/values",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "localhost",
|
|
"Port": 5002
|
|
}
|
|
],
|
|
"HttpHandlerOptions": {
|
|
"AllowAutoRedirect": true,
|
|
"UseCookieContainer": true,
|
|
"UseTracing": true
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "localhost",
|
|
"Port": 52876
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/identityserverexample",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"AuthenticationOptions": {
|
|
"AuthenticationProviderKey": "TestKey",
|
|
"AllowedScopes": [
|
|
"openid",
|
|
"offline_access"
|
|
]
|
|
},
|
|
"AddHeadersToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"AddClaimsToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"AddQueriesToRequest": {
|
|
"CustomerId": "Claims[CustomerId] > value",
|
|
"LocationId": "Claims[LocationId] > value",
|
|
"UserType": "Claims[sub] > value[0] > |",
|
|
"UserId": "Claims[sub] > value[1] > |"
|
|
},
|
|
"RouteClaimsRequirement": {
|
|
"UserType": "registered"
|
|
},
|
|
"RequestIdKey": "OcRequestId"
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "https",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 443
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"RequestIdKey": "ReRouteRequestId",
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}/comments",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/{postId}/comments",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/comments",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/comments",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts",
|
|
"UpstreamHttpMethod": [ "Post" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Put" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Patch" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts/{postId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/{postId}",
|
|
"UpstreamHttpMethod": [ "Delete" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/products",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products/{productId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/products/{productId}",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/products",
|
|
"UpstreamHttpMethod": [ "Post" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
}
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/api/products/{productId}",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/products/{productId}",
|
|
"UpstreamHttpMethod": [ "Put" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/posts",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "jsonplaceholder.typicode.com",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/posts/",
|
|
"UpstreamHttpMethod": [ "Get" ],
|
|
"QoSOptions": {
|
|
"ExceptionsAllowedBeforeBreaking": 3,
|
|
"DurationOfBreak": 10,
|
|
"TimeoutValue": 5000
|
|
},
|
|
"FileCacheOptions": { "TtlSeconds": 15 }
|
|
},
|
|
{
|
|
"DownstreamPathTemplate": "/",
|
|
"DownstreamScheme": "http",
|
|
"DownstreamHostAndPorts": [
|
|
{
|
|
"Host": "www.bbc.co.uk",
|
|
"Port": 80
|
|
}
|
|
],
|
|
"UpstreamPathTemplate": "/bbc/",
|
|
"UpstreamHttpMethod": [ "Get" ]
|
|
}
|
|
],
|
|
|
|
"GlobalConfiguration": {
|
|
"RequestIdKey": "ot-traceid"
|
|
}
|
|
}
|