2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"description" : "Comprehensive database performance monitoring for PostgreSQL, Redis, and RabbitMQ" ,
"tags" : [ "database" , "postgresql" , "redis" , "rabbitmq" , "performance" ] ,
"name" : "bakery-ia-database-performance" ,
"title" : "Bakery IA - Database Performance" ,
"uploadedGrafana" : false ,
"uuid" : "bakery-ia-db-01" ,
"version" : "v4" ,
"collapsableRowsMigrated" : true ,
"layout" : [
{
"x" : 0 ,
"y" : 0 ,
"w" : 6 ,
"h" : 3 ,
"i" : "pg-connections" ,
"moved" : false ,
"static" : false
} ,
{
"x" : 6 ,
"y" : 0 ,
"w" : 6 ,
"h" : 3 ,
"i" : "pg-db-size" ,
"moved" : false ,
"static" : false
} ,
{
"x" : 0 ,
"y" : 3 ,
"w" : 6 ,
"h" : 3 ,
"i" : "redis-connected-clients" ,
"moved" : false ,
"static" : false
} ,
{
"x" : 6 ,
"y" : 3 ,
"w" : 6 ,
"h" : 3 ,
"i" : "redis-memory" ,
"moved" : false ,
"static" : false
} ,
{
"x" : 0 ,
"y" : 6 ,
"w" : 6 ,
"h" : 3 ,
"i" : "rabbitmq-messages" ,
"moved" : false ,
"static" : false
} ,
{
"x" : 6 ,
"y" : 6 ,
"w" : 6 ,
"h" : 3 ,
"i" : "rabbitmq-consumers" ,
"moved" : false ,
"static" : false
}
] ,
"variables" : {
"database" : {
"id" : "database-var" ,
"name" : "database" ,
"description" : "Filter by PostgreSQL database name" ,
"type" : "QUERY" ,
"queryValue" : "SELECT DISTINCT(resource_attrs['postgresql.database.name']) as value FROM signoz_metrics.distributed_time_series_v4_1day WHERE metric_name = 'postgresql.db_size' AND value != '' ORDER BY value" ,
"customValue" : "" ,
"textboxValue" : "" ,
"showALLOption" : true ,
"multiSelect" : false ,
"order" : 1 ,
"modificationUUID" : "" ,
"sort" : "ASC" ,
"selectedValue" : null
}
} ,
"widgets" : [
{
"id" : "pg-connections" ,
"title" : "PostgreSQL - Active Connections" ,
"description" : "Number of active PostgreSQL connections" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "sum" ,
"aggregateAttribute" : {
"key" : "postgresql.backends" ,
"dataType" : "float64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "sum" ,
"functions" : [ ] ,
"filters" : {
"items" : [
{
"key" : {
"key" : "postgresql.database.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
} ,
"op" : "=" ,
"value" : "{{.database}}"
}
] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "postgresql.database.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
}
] ,
"legend" : "{{postgresql.database.name}}" ,
"reduceTo" : "sum"
2026-01-09 14:48:44 +01:00
}
2026-01-09 23:14:12 +01:00
] ,
"queryFormulas" : [ ]
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"queryType" : "builder"
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"fillSpans" : false ,
"yAxisUnit" : "none"
} ,
{
"id" : "pg-db-size" ,
"title" : "PostgreSQL - Database Size" ,
"description" : "Size of PostgreSQL databases in bytes" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "sum" ,
"aggregateAttribute" : {
"key" : "postgresql.db_size" ,
"dataType" : "int64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "sum" ,
"functions" : [ ] ,
"filters" : {
"items" : [
{
"key" : {
"key" : "postgresql.database.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
} ,
"op" : "=" ,
"value" : "{{.database}}"
}
] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "postgresql.database.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
}
] ,
"legend" : "{{postgresql.database.name}}" ,
"reduceTo" : "sum"
}
] ,
"queryFormulas" : [ ]
} ,
"queryType" : "builder"
} ,
"fillSpans" : false ,
"yAxisUnit" : "bytes"
} ,
{
"id" : "redis-connected-clients" ,
"title" : "Redis - Connected Clients" ,
"description" : "Number of clients connected to Redis" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "avg" ,
"aggregateAttribute" : {
"key" : "redis.clients.connected" ,
"dataType" : "int64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "avg" ,
"functions" : [ ] ,
"filters" : {
"items" : [ ] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "host.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
}
] ,
"legend" : "{{host.name}}" ,
"reduceTo" : "avg"
2026-01-09 14:48:44 +01:00
}
2026-01-09 23:14:12 +01:00
] ,
"queryFormulas" : [ ]
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"queryType" : "builder"
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"fillSpans" : false ,
"yAxisUnit" : "none"
} ,
{
"id" : "redis-memory" ,
"title" : "Redis - Memory Usage" ,
"description" : "Redis memory usage in bytes" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "avg" ,
"aggregateAttribute" : {
"key" : "redis.memory.used" ,
"dataType" : "int64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "avg" ,
"functions" : [ ] ,
"filters" : {
"items" : [ ] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "host.name" ,
"dataType" : "string" ,
"type" : "resource" ,
"isColumn" : false
}
] ,
"legend" : "{{host.name}}" ,
"reduceTo" : "avg"
2026-01-09 14:48:44 +01:00
}
2026-01-09 23:14:12 +01:00
] ,
"queryFormulas" : [ ]
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"queryType" : "builder"
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"fillSpans" : false ,
"yAxisUnit" : "bytes"
} ,
{
"id" : "rabbitmq-messages" ,
"title" : "RabbitMQ - Current Messages" ,
"description" : "Number of messages currently in RabbitMQ queues" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
2026-01-09 14:48:44 +01:00
{
2026-01-09 23:14:12 +01:00
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "sum" ,
"aggregateAttribute" : {
"key" : "rabbitmq.message.current" ,
"dataType" : "int64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "sum" ,
"functions" : [ ] ,
"filters" : {
"items" : [ ] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "queue" ,
"dataType" : "string" ,
"type" : "tag" ,
"isColumn" : false
}
] ,
"legend" : "Queue: {{queue}}" ,
"reduceTo" : "sum"
2026-01-09 14:48:44 +01:00
}
2026-01-09 23:14:12 +01:00
] ,
"queryFormulas" : [ ]
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
"queryType" : "builder"
} ,
"fillSpans" : false ,
"yAxisUnit" : "none"
2026-01-09 14:48:44 +01:00
} ,
2026-01-09 23:14:12 +01:00
{
"id" : "rabbitmq-consumers" ,
"title" : "RabbitMQ - Consumer Count" ,
"description" : "Number of consumers per queue" ,
"isStacked" : false ,
"nullZeroValues" : "zero" ,
"opacity" : "1" ,
"panelTypes" : "graph" ,
"query" : {
"builder" : {
"queryData" : [
{
"dataSource" : "metrics" ,
"queryName" : "A" ,
"aggregateOperator" : "sum" ,
"aggregateAttribute" : {
"key" : "rabbitmq.consumer.count" ,
"dataType" : "int64" ,
"type" : "Gauge" ,
"isColumn" : false
} ,
"timeAggregation" : "latest" ,
"spaceAggregation" : "sum" ,
"functions" : [ ] ,
"filters" : {
"items" : [ ] ,
"op" : "AND"
} ,
"expression" : "A" ,
"disabled" : false ,
"having" : [ ] ,
"stepInterval" : 60 ,
"limit" : null ,
"orderBy" : [ ] ,
"groupBy" : [
{
"key" : "queue" ,
"dataType" : "string" ,
"type" : "tag" ,
"isColumn" : false
}
] ,
"legend" : "Queue: {{queue}}" ,
"reduceTo" : "sum"
}
] ,
"queryFormulas" : [ ]
} ,
"queryType" : "builder"
} ,
"fillSpans" : false ,
"yAxisUnit" : "none"
2026-01-09 14:48:44 +01:00
}
2026-01-09 23:14:12 +01:00
]
}