2015-07-21 70 views
2

我正在嘗試在Mongo DB中使用cygnus,但是數據庫中沒有數據。 這裏是通知在天鵝座有:Fiware cygnus:mongo數據庫中沒有數據持續存在

15/07/21 14:48:01 INFO handlers.OrionRestHandler: Starting transaction (1437482681-118-0000000000) 
15/07/21 14:48:01 INFO handlers.OrionRestHandler: Received data ({ "subscriptionId" : "55a73819d0c457bb20b1d467", "originator" : "localhost", "contextResponses" : [ {  "contextElement" : {  "type" : "enocean",  "isPattern" : "false",  "id" : "enocean:myButtonA",  "attributes" : [   {   "name" : "ButtonValue",   "type" : "",   "value" : "ON",   "metadatas" : [    {    "name" : "TimeInstant",    "type" : "ISO8601",    "value" : "2015-07-20T21:29:56.509293Z"    }   ]   }  ]  },  "statusCode" : {  "code" : "200",  "reasonPhrase" : "OK"  } } ]}) 
15/07/21 14:48:01 INFO handlers.OrionRestHandler: Event put in the channel (id=1454120446, ttl=10) 

這裏是我的代理配置:

cygnusagent.sources = http-source 
cygnusagent.sinks = OrionMongoSink 
cygnusagent.channels = mongo-channel 

#============================================= 
# source configuration 
# channel name where to write the notification events 
cygnusagent.sources.http-source.channels = mongo-channel 
# source class, must not be changed 
cygnusagent.sources.http-source.type = org.apache.flume.source.http.HTTPSource 
# listening port the Flume source will use for receiving incoming notifications 
cygnusagent.sources.http-source.port = 5050 
# Flume handler that will parse the notifications, must not be changed 
cygnusagent.sources.http-source.handler = com.telefonica.iot.cygnus.handlers.OrionRestHandler 
# URL target 
cygnusagent.sources.http-source.handler.notification_target = /notify 
# Default service (service semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service = def_serv 
# Default service path (service path semantic depends on the persistence sink) 
cygnusagent.sources.http-source.handler.default_service_path = def_servpath 
# Number of channel re-injection retries before a Flume event is definitely discarded (-1 means infinite retries) 
cygnusagent.sources.http-source.handler.events_ttl = 10 
# Source interceptors, do not change 
cygnusagent.sources.http-source.interceptors = ts gi 
# TimestampInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.ts.type = timestamp 
# GroupinInterceptor, do not change 
cygnusagent.sources.http-source.interceptors.gi.type = com.telefonica.iot.cygnus.interceptors.GroupingInterceptor$Builder 
# Grouping rules for the GroupingInterceptor, put the right absolute path to the file if necessary 
# See the doc/design/interceptors document for more details 
cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file = /home/egm_demo/usr/fiware-cygnus/conf/grouping_rules.conf 

# ============================================ 
# OrionMongoSink configuration 
# sink class, must not be changed 
cygnusagent.sinks.mongo-sink.type = com.telefonica.iot.cygnus.sinks.OrionMongoSink 
# channel name from where to read notification events 
cygnusagent.sinks.mongo-sink.channel = mongo-channel 
# FQDN/IP:port where the MongoDB server runs (standalone case) or comma-separated list of FQDN/IP:port pairs where the MongoDB replica set members run 
cygnusagent.sinks.mongo-sink.mongo_hosts = 127.0.0.1:27017 
# a valid user in the MongoDB server (or empty if authentication is not enabled in MongoDB) 
cygnusagent.sinks.mongo-sink.mongo_username = 
# password for the user above (or empty if authentication is not enabled in MongoDB) 
cygnusagent.sinks.mongo-sink.mongo_password = 
# prefix for the MongoDB databases 
#cygnusagent.sinks.mongo-sink.db_prefix = kura 
# prefix pro the MongoDB collections 
#cygnusagent.sinks.mongo-sink.collection_prefix = button 
# true is collection names are based on a hash, false for human redable collections 
cygnusagent.sinks.mongo-sink.should_hash = false 

# ============================================ 
# mongo-channel configuration 
# channel type (must not be changed) 
cygnusagent.channels.mongo-channel.type = memory 
# capacity of the channel 
cygnusagent.channels.mongo-channel.capacity = 1000 
# amount of bytes that can be sent per transaction 
cygnusagent.channels.mongo-channel.transactionCapacity = 100 

這裏是我的規則:

{ 
    "grouping_rules": [ 
     { 
      "id": 1, 
      "fields": [ 
       "button" 
      ], 
      "regex": ".*",    
      "destination": "kura", 
      "fiware_service_path": "/kuraspath" 
     } 

    ] 
} 

什麼,我已經錯過了任何想法?在此先感謝您的幫助!

回答

1

該配置參數是錯誤的:

cygnusagent.sinks = OrionMongoSink 

根據您的配置,它必須是mongo-sink(我的意思是,要配置蒙戈水槽名爲mongo-sink在配置線,如cygnusagent.sinks.mongo-sink.type)。

另外,我建議你不要使用分組規則功能;這是一個關於將數據發送到與默認值不同的集合的高級功能,並且在第一階段我將使用默認行爲。因此,我的建議是在cygnusagent.sources.http-source.interceptors.gi.grouping_rules_conf_file中留下文件路徑,但註釋其中的所有JSON :)