You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
2.7 KiB
127 lines
2.7 KiB
{ |
|
"nodes": [ |
|
{ |
|
"id": "webserver-1", |
|
"type": "webserver", |
|
"position": { "x": 100, "y": 200 }, |
|
"props": { |
|
"label": "Web Server", |
|
"rpsCapacity": 100 |
|
} |
|
}, |
|
{ |
|
"id": "monitor-1", |
|
"type": "monitoring/alerting", |
|
"position": { "x": 300, "y": 200 }, |
|
"props": { |
|
"label": "Prometheus Monitor", |
|
"tool": "Prometheus", |
|
"alertMetric": "latency", |
|
"thresholdValue": 80, |
|
"thresholdUnit": "ms" |
|
} |
|
}, |
|
{ |
|
"id": "lb-1", |
|
"type": "loadbalancer", |
|
"position": { "x": 500, "y": 200 }, |
|
"props": { |
|
"label": "Load Balancer", |
|
"algorithm": "round-robin" |
|
} |
|
}, |
|
{ |
|
"id": "microservice-1", |
|
"type": "microservice", |
|
"position": { "x": 700, "y": 150 }, |
|
"props": { |
|
"label": "User Service", |
|
"instanceCount": 2, |
|
"cpu": 2, |
|
"ramGb": 4, |
|
"rpsCapacity": 50, |
|
"scalingStrategy": "auto" |
|
} |
|
}, |
|
{ |
|
"id": "microservice-2", |
|
"type": "microservice", |
|
"position": { "x": 700, "y": 250 }, |
|
"props": { |
|
"label": "Order Service", |
|
"instanceCount": 1, |
|
"cpu": 1, |
|
"ramGb": 2, |
|
"rpsCapacity": 30, |
|
"scalingStrategy": "manual" |
|
} |
|
}, |
|
{ |
|
"id": "monitor-2", |
|
"type": "monitoring/alerting", |
|
"position": { "x": 900, "y": 200 }, |
|
"props": { |
|
"label": "Error Rate Monitor", |
|
"tool": "Datadog", |
|
"alertMetric": "error_rate", |
|
"thresholdValue": 5, |
|
"thresholdUnit": "percent" |
|
} |
|
}, |
|
{ |
|
"id": "db-1", |
|
"type": "database", |
|
"position": { "x": 1100, "y": 200 }, |
|
"props": { |
|
"label": "PostgreSQL", |
|
"replication": 2, |
|
"maxRPS": 200, |
|
"baseLatencyMs": 15 |
|
} |
|
} |
|
], |
|
"connections": [ |
|
{ |
|
"source": "webserver-1", |
|
"target": "monitor-1", |
|
"label": "HTTP Requests", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "monitor-1", |
|
"target": "lb-1", |
|
"label": "Monitored Requests", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "lb-1", |
|
"target": "microservice-1", |
|
"label": "User API", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "lb-1", |
|
"target": "microservice-2", |
|
"label": "Order API", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "microservice-1", |
|
"target": "monitor-2", |
|
"label": "Service Metrics", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "microservice-2", |
|
"target": "monitor-2", |
|
"label": "Service Metrics", |
|
"protocol": "http" |
|
}, |
|
{ |
|
"source": "monitor-2", |
|
"target": "db-1", |
|
"label": "Database Queries", |
|
"protocol": "tcp" |
|
} |
|
] |
|
}
|
|
|