I’ve found the following bugs in Confluent Control Center (I’ve tried with versions 5.4.2 and 5.5.1)
Setup:
- Produce messages with an Avro key (see below for schema)
- View messages in Control Center
Bugs:
- Display of the “message fields” in the lefthand area parses only some of the key schema, as if it’s generalizing from an individual message instead of from the schema.
^ “external” fails to list any sub-fields - Display of the message columns in the “table” view likewise lacks some of the key’s fields, again as if it too is based on a single message rather than the schema.
^ “key.internal” should instead be a series of key fields just like “key.external.*” - Even the key fields which are correctly listed in “table” view incorrectly display empty values.
^ “key.external.*” fields incorrectly display “null” even when their values are not null. - Display of the messages in the “cards” view, when expanded, shows only a truncated version of the key (while instead the value is fully listed)
^ In expanded card mode, I’d expect the key to expand, just like the value does.
Note however that if I select one or more messages from Control Center and download them as JSON, the downloaded files contain correctly contain the keys and values as cast to JSON.
And likewise if I consume these messages with kafkacat or kafka-avro-console-consumer they are well-formed. Thus these all appear to be UI bugs with Control Center.
Key schema listed below:
{
"fields": [
{
"default": null,
"name": "external",
"type": [
"null",
{
"fields": [
{
"name": "source",
"type": {
"name": "ExternalUnitSource",
"symbols": [
"ABC",
"DEF"
],
"type": "enum"
}
},
{
"logicalType": "uuid",
"name": "integration_config_key",
"type": "string"
},
{
"name": "property_id",
"type": "string"
},
{
"name": "unit_number",
"type": "string"
},
{
"default": null,
"name": "building_number",
"type": [
"null",
"string"
]
},
{
"default": null,
"name": "floor_plan_id",
"type": [
"null",
"string"
]
}
],
"name": "ExternalUnitIdentifier",
"type": "record"
}
]
},
{
"default": null,
"name": "internal",
"type": [
"null",
{
"fields": [
{
"name": "source",
"type": {
"name": "InternalUnitSource",
"symbols": [
"GHI",
"JKL"
],
"type": "enum"
}
},
{
"name": "company_id",
"type": "string"
},
{
"name": "property_id",
"type": "string"
},
{
"name": "unit_number",
"type": "string"
},
{
"default": null,
"name": "building_number",
"type": [
"null",
"string"
]
},
{
"default": null,
"name": "floor_plan_id",
"type": [
"null",
"string"
]
}
],
"name": "InternalUnitIdentifier",
"type": "record"
}
]
}
],
"name": "UnitIdentifier",
"namespace": "com.sample.kafka",
"type": "record"
}