Hola Jaume:
El problema es que el agente Relational sólo tiene acceso a las observaciones que están guardadas en Redis, y éstas no llevan ese metadato. La descripción del componente está en MongoDB, que es donde se guardan todos los metadatos que se ven en el Catálogo.
Por otro lado, sí hay agentes que enriquecen el evento con la información de MongoDB, son entre otros el agente Activity Monitor también el agente Kafka.
Primero tedrías que crear un
CatalogService y su implementación, que tenga un método que se llamaría por ejemplo
getDescription(final String provider, final String sensor).
Sería muy similar al método
getSensorType de la clase org.sentilo.agent.activity.monitor.service.impl.CatalogServiceImpl. Este método hace lo mismo pero con el tipo de sensor. Si miras ese método, allí en vez de
query.fields().include("type");Tendrías que usar
query.fields().include("description"); ,
así se llama el campo en la collection "sensor" en MongoDb.
Recomendamos usar también la cache LRU tal cómo lo hacen estos servicios, para no hacer una query a Mongo cada vez que nos llega una observación.
Ese nuevo servicio
CatalogService lo podrías inyectar y usar ya directamente en la clase
org.sentilo.agent.relational.listener.AbstractMessageListenerImpl, concretamente en el método
doWithMessage(). De nuevo, puedes inspirarte en el objeto
MessageListenerImpl, tanto en el agente Activity Monitor como en agente Kafka.
Obviamente, tendrías que adaptar el objeto de dominio
org.sentilo.agent.relational.domain.Observation y también añadir una nueva columna a la BBDD.
También tendrías que añadir sentilo-agent-relational/src/main/resources/properties/catalog-config.properties, para que el agente tenga properties sobre el acceso al MongoDB (recuerda modificar sentilo-agent-relational/src/main/resources/spring/relational-properties-context.xml para que incluya este nuevo properties). Finalmente habría que crear relational-persistence-context.xml (igual que por ejemplo /sentilo/sentilo-agent-activity-monitor/src/main/resources/spring/monitor-persistence-context.xml).
Saludos,
Sentilo Team.