Erreur UTF-8 à la génération des events
Configuration :
[database]
url=...
query=select 'Rennes' as ville, 'Dossiers ouverts : '+ PriorityDescription as priorite, convert(varchar(10),getdate(),103) + ' - ' + PriorityDescription + ' | nbdossiersouvertsrennes='+cast(count(distinct Id) as varchar) as nbdossiers from sib_dossiers where ClosedON is NULL and Field26 is NULL and CustomerId='35RE2C' and PriorityDescription <> 'Normale' and PriorityDescription <> 'Haute' and PriorityDescription <> 'Aucune' and PriorityDescription <> 'Basse' group by PriorityDescription
[amqp]
url=...
[event]
connector.constant=SUPPORT1
connector_name.constant=instanceSUP1
event_type.constant=check
source_type.constant=resource
component.value=ville
resource.value=priorite
output.value=nbdossiers
Extrait de la base de données :
Événements produits :
[root@canopsisv2 canopsis-sql]# python /products/canopsis-sql/connector-sql2canopsis.py -c /products/canopsis-sql/helpdesk1-rennes.ini
{
"resource": "Dossiers ouverts : Conseil / Info",
"event_type": "check",
"component": "Rennes",
"connector": "SUPPORT1",
"source_type": "resource",
"connector_name": "instanceSUP1",
"perf_data_array": [],
"output": "26/06/2015 - Conseil / Info | nbdossiersouvertsrennes=3647"
}
{
"resource": "Dossiers ouverts : Demande de Prestation",
"event_type": "check",
"component": "Rennes",
"connector": "SUPPORT1",
"source_type": "resource",
"connector_name": "instanceSUP1",
"perf_data_array": [],
"output": "26/06/2015 - Demande de Prestation | nbdossiersouvertsrennes=112"
}
Traceback (most recent call last):
File "/products/canopsis-sql/connector-sql2canopsis.py", line 217, in <module>
sys.exit(app())
File "/products/canopsis-sql/connector-sql2canopsis.py", line 207, in __call__
print(json.dumps(event, indent=2))
File "/usr/lib64/python2.6/json/__init__.py", line 237, in dumps
**kw).encode(obj)
File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode
chunks = list(self.iterencode(o))
File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode
for chunk in self._iterencode_dict(o, markers):
File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict
for chunk in self._iterencode(value, markers):
File "/usr/lib64/python2.6/json/encoder.py", line 294, in _iterencode
yield encoder(o)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 27: invalid continuation byte
Lorsque le champ PriorityDescription
est retiré de la requête, cela fonctionne.