gcf create-user-provided-service mylogcluster-syslog0 -l syslog://syslog-endpoint.mylogcluster.com
gcf bind-service monitor-bot-dev mylogcluster-syslog0353 <14>1 2013-12-03T09:41:11+00:00 loggregator 66dcf62e-703d-49d4-b478-319e80f47fd8 App - - {"@timestamp":"2013-12-03T09:41:11.040Z","Name":"Latency CIAPI.PriceStream","Value":"0.085928","@source.name":"pivotal-us-east-1-push1","@source.lonlat":[-78.450065,38.130112],"logger":"Monitors.Common.LatencyMonitor","level":"INFO"}
Are all possible application/service and platform logs for a given unique customer CF environment available via loggregator?
Are there differences in what types of logs available via loggregator versus a syslog drain? (or are they the same thing?)
What scenarios would require having a log shipping agent (e.g. logstash-forwarder) actually within a client's CF app/service environment? (why did you add logstash-forwarder to your buildpack?)
What meta data is available for each log source/log record emitted from a given loggregator/syslog drain output? Will they all be uniquely identifiable to a specific app/service/client/group/org, etc. or will this data need to be added to a log stream externally? (e.g I need to be able to uniquely identify one type of log record from another for a given client app and act upon them differently)
What tests can we work on?
Great responses! The only thing I’ll add is that we aren’t yet emitting loggregator messages from services. You can see all of the places we emit by looking for Loggregator.emit:
~/code/cloudfoundry/cloud_controller_ng master $ ag Loggregator.emit
./app/controllers/runtime/app_bits_controller.rb
39: Loggregator.emit_error(guid, "Could not find package for #{guid}")
./app/controllers/runtime/apps_controller.rb
73: Loggregator.emit(app.guid, "Created app with guid #{app.guid}")
87: Loggregator.emit(app.guid, "Updated app with guid #{app.guid}")
./app/controllers/runtime/stagings_controller.rb
116: Loggregator.emit_error(app_guid, "Did not find #{name} for app with guid: #{app_guid}")
./app/models/runtime/app_stop_event.rb
38: Loggregator.emit(app.guid, "Tried to stop app that never received a start event")
./lib/cloud_controller/app_stager_task.rb
127: Loggregator.emit_error(@app.guid, "exception handling first response #{e.message}")
138: Loggregator.emit_error(@app.guid, "Encountered error: #{e.message}")
149: Loggregator.emit_error(@app.guid, "Encountered error: #{e.message}")
183: Loggregator.emit_error(@app.guid, "Exception checking staging status: #{e.message}")
./lib/cloud_controller/health_manager_respondent.rb
40: Loggregator.emit_error(app_id, "Bad request from health manager: #{e.message}, payload: #{payload}")
67: Loggregator.emit_error(app_id, "Bad request from health manager: #{e.message}, payload: #{payload}")
105: Loggregator.emit_error(app.guid, "Bad request from health manager")
./lib/cloud_controller/hm9000_respondent.rb
35: Loggregator.emit_error(app_id, "Bad request from health manager: #{e.message}, payload: #{message}")
57: Loggregator.emit_error(app_id, "Bad request from health manager: #{e.message}, payload: #{message}")
./lib/cloud_controller/runner.rb
95: Loggregator.emitter = LoggregatorEmitter::Emitter.new(@config[:loggregator][:router], "API", @config[:index], @config[:loggregator][:shared_secret])
./spec/loggregator_spec.rb
5: before { Loggregator.emitter = nil }
9: Loggregator.emit_error("app_id", "error message")
14: Loggregator.emit("app_id", "log message")
22: Loggregator.emitter = emitter
23: Loggregator.emit_error("app_id", "error message")
29: Loggregator.emitter = emitter
30: Loggregator.emit("app_id", "log message")
Cheers,
Tammer Saleh
To unsubscribe from this group and stop receiving emails from it, send an email to vcap-dev+u...@cloudfoundry.org.
Thanks David! This is all great base information.
I think we have a few opportunities:
- Create a resource (webpage/wiki/gist/...) that catalogs all of the logging techniques, log sources and log messages examples available from the CF environment and associated components, services and apps. (by CF build #) (your work and Dr Nic's work can provide a great start here)
- Request formal support for encrypted loggregator syslog drains
- Assess whether there is enough meta data associated with a given log message that it can be efficiently processed externally
- Assuming the use of LS, create grok patterns, codecs, etc. as needed to consume, parse and process CF log data
- Think about what's needed for scaling this out and providing resiliency, elasticity, performance, etc. (what's the loggregator and LS architecture look like, etc.)
To unsubscribe from this group and stop receiving emails from it, send an email to vcap-dev+u...@cloudfoundry.org.
To unsubscribe from this group and stop receiving emails from it, send an email to vcap-dev+u...@cloudfoundry.org.