2015-07-21 72 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 :)