)]}'
{"thresh/pom.xml":[{"author":{"_account_id":12108,"name":"Gary Hessler","email":"gary.hessler@hp.com","username":"garyh"},"change_message_id":"4c4fbf773bf127c26d24b5cdd919f8c9efdfbaa6","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          \u003cgroupId\u003ecom.timgroup\u003c/groupId\u003e"},{"line_number":127,"context_line":"          \u003cartifactId\u003ejava-statsd-client\u003c/artifactId\u003e"},{"line_number":128,"context_line":"          \u003cversion\u003e3.1.0\u003c/version\u003e"},{"line_number":129,"context_line":"        \u003c/dependency\u003e"},{"line_number":130,"context_line":"        \u003cdependency\u003e"},{"line_number":131,"context_line":"            \u003cgroupId\u003eorg.apache.kafka\u003c/groupId\u003e"},{"line_number":132,"context_line":"            \u003cartifactId\u003ekafka_2.9.2\u003c/artifactId\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a80dd14_b6c9b67b","line":129,"updated":"2015-03-10 15:39:00.000000000","message":"We need to standardize on one statsd library that supports dimensions and possibly the new value_meta for all Java projects.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12108,"name":"Gary Hessler","email":"gary.hessler@hp.com","username":"garyh"},"change_message_id":"1d7db4fd7c82f3a8518936a665d7200de82f8104","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          \u003cgroupId\u003ecom.timgroup\u003c/groupId\u003e"},{"line_number":127,"context_line":"          \u003cartifactId\u003ejava-statsd-client\u003c/artifactId\u003e"},{"line_number":128,"context_line":"          \u003cversion\u003e3.1.0\u003c/version\u003e"},{"line_number":129,"context_line":"        \u003c/dependency\u003e"},{"line_number":130,"context_line":"        \u003cdependency\u003e"},{"line_number":131,"context_line":"            \u003cgroupId\u003eorg.apache.kafka\u003c/groupId\u003e"},{"line_number":132,"context_line":"            \u003cartifactId\u003ekafka_2.9.2\u003c/artifactId\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a80dd14_cd668bee","line":129,"in_reply_to":"9a80dd14_95101faa","updated":"2015-03-10 20:16:45.000000000","message":"It\u0027s format is in the api readme:\nhttps://github.com/stackforge/monasca-api/blob/master/docs/monasca-api-spec.md#value-meta","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"dc2318461818097d6cc20ed2b22323f7bdd772b7","unresolved":false,"context_lines":[{"line_number":126,"context_line":"          \u003cgroupId\u003ecom.timgroup\u003c/groupId\u003e"},{"line_number":127,"context_line":"          \u003cartifactId\u003ejava-statsd-client\u003c/artifactId\u003e"},{"line_number":128,"context_line":"          \u003cversion\u003e3.1.0\u003c/version\u003e"},{"line_number":129,"context_line":"        \u003c/dependency\u003e"},{"line_number":130,"context_line":"        \u003cdependency\u003e"},{"line_number":131,"context_line":"            \u003cgroupId\u003eorg.apache.kafka\u003c/groupId\u003e"},{"line_number":132,"context_line":"            \u003cartifactId\u003ekafka_2.9.2\u003c/artifactId\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a80dd14_95101faa","line":129,"in_reply_to":"9a80dd14_b6c9b67b","updated":"2015-03-10 18:37:20.000000000","message":"Agreed.  Do you have a pointer to the value_meta so I can see what that structure looks like and include it in the config template and/or UDP message?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u003cgroupId\u003ecom.google.collections\u003c/groupId\u003e"},{"line_number":166,"context_line":"            \u003cartifactId\u003egoogle-collections\u003c/artifactId\u003e"},{"line_number":167,"context_line":"            \u003cversion\u003e1.0\u003c/version\u003e"},{"line_number":168,"context_line":"        \u003c/dependency\u003e"},{"line_number":169,"context_line":"    \u003c/dependencies\u003e"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    \u003cbuild\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a80dd14_677152e0","line":168,"updated":"2015-03-10 14:45:45.000000000","message":"Google collections is deprecated. See https://code.google.com/p/google-collections/\n\nShouldn\u0027t this be google Guava. See https://code.google.com/p/guava-libraries/","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":165,"context_line":"            \u003cgroupId\u003ecom.google.collections\u003c/groupId\u003e"},{"line_number":166,"context_line":"            \u003cartifactId\u003egoogle-collections\u003c/artifactId\u003e"},{"line_number":167,"context_line":"            \u003cversion\u003e1.0\u003c/version\u003e"},{"line_number":168,"context_line":"        \u003c/dependency\u003e"},{"line_number":169,"context_line":"    \u003c/dependencies\u003e"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    \u003cbuild\u003e"}],"source_content_type":"application/xml","patch_set":5,"id":"9a80dd14_dae2c400","line":168,"in_reply_to":"9a80dd14_677152e0","updated":"2015-03-10 18:33:06.000000000","message":"I\u0027ll take a look at Guava. This was a carryover from the port from endgameinc/storm-metrics-statsd","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"}],"thresh/src/main/config/thresh-sample-config.yml":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  host: localhost"},{"line_number":6,"context_line":"  port: 8125"},{"line_number":7,"context_line":"  prefix: monasca.storm.metrics."},{"line_number":8,"context_line":"  dimensions: \u0027{\"service\":\"monitoring\",\"component\":\"storm\"}\u0027"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"metricSpoutConfig:"},{"line_number":11,"context_line":"  maxWaitTime: 500"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a80dd14_9766a2b9","line":8,"updated":"2015-03-09 18:48:08.000000000","message":"It seems really weird to be mixing json and yaml here. This should be possible using something like:\n\ndimensions:\n    service: monitoring\n    component: storm","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"31f9ff745dbe09ccfbda80170be6bf694ac87713","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  host: localhost"},{"line_number":6,"context_line":"  port: 8125"},{"line_number":7,"context_line":"  prefix: monasca.storm.metrics."},{"line_number":8,"context_line":"  dimensions: \u0027{\"service\":\"monitoring\",\"component\":\"storm\"}\u0027"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"metricSpoutConfig:"},{"line_number":11,"context_line":"  maxWaitTime: 500"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a80dd14_42e18a99","line":8,"in_reply_to":"9a80dd14_1af8dc48","updated":"2015-03-10 20:07:08.000000000","message":"But, you are trading off confusion for the user vs code in Thresh. I think if you try this you will find it is easy to configure this in yaml. Mixing json into yaml is just asking for problems","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"7258a8201ca9b2564eb5d9726976b1cab9f40613","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  host: localhost"},{"line_number":6,"context_line":"  port: 8125"},{"line_number":7,"context_line":"  prefix: monasca.storm.metrics."},{"line_number":8,"context_line":"  dimensions: \u0027{\"service\":\"monitoring\",\"component\":\"storm\"}\u0027"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"metricSpoutConfig:"},{"line_number":11,"context_line":"  maxWaitTime: 500"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a80dd14_0d750332","line":8,"in_reply_to":"9a80dd14_42e18a99","updated":"2015-03-10 20:29:40.000000000","message":"Touché, I didn\u0027t really think of it that way.  I\u0027ll look at making those changes.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  host: localhost"},{"line_number":6,"context_line":"  port: 8125"},{"line_number":7,"context_line":"  prefix: monasca.storm.metrics."},{"line_number":8,"context_line":"  dimensions: \u0027{\"service\":\"monitoring\",\"component\":\"storm\"}\u0027"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"metricSpoutConfig:"},{"line_number":11,"context_line":"  maxWaitTime: 500"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a80dd14_1af8dc48","line":8,"in_reply_to":"9a80dd14_9766a2b9","updated":"2015-03-10 18:33:06.000000000","message":"It\u0027s essentially a string that the code passes through as a payload.  It is only evaluated to be valid JSON and passed along.  I really didn\u0027t want to pollute the config file with lots of vars that the code really doesn\u0027t care about.  Instead of taking in the entire element and passing it along it would require more boilerplate code to evaluate this element and marshal it back in to what it is here.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12108,"name":"Gary Hessler","email":"gary.hessler@hp.com","username":"garyh"},"change_message_id":"4c4fbf773bf127c26d24b5cdd919f8c9efdfbaa6","unresolved":false,"context_lines":[{"line_number":5,"context_line":"  host: localhost"},{"line_number":6,"context_line":"  port: 8125"},{"line_number":7,"context_line":"  prefix: monasca.storm.metrics."},{"line_number":8,"context_line":"  dimensions: \u0027{\"service\":\"monitoring\",\"component\":\"storm\"}\u0027"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"metricSpoutConfig:"},{"line_number":11,"context_line":"  maxWaitTime: 500"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9a80dd14_b69e1653","line":8,"in_reply_to":"9a80dd14_9766a2b9","updated":"2015-03-10 15:39:00.000000000","message":"Yes, the way Craig suggests is how we do dimensions in the agent configuration.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"}],"thresh/src/main/java/monasca/thresh/TopologyModule.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":37,"context_line":"import com.google.inject.AbstractModule;"},{"line_number":38,"context_line":"import com.google.inject.Provides;"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"import javax.inject.Named;"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"/**"},{"line_number":43,"context_line":" * Configures types for the thresholding topology."}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_f7827ec6","side":"PARENT","line":40,"updated":"2015-03-09 18:48:08.000000000","message":"Please don\u0027t reorder the imports","commit_id":"531cc527b65449af17611b9275b0ce1236b88d8d"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"import com.google.inject.AbstractModule;"},{"line_number":38,"context_line":"import com.google.inject.Provides;"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"import javax.inject.Named;"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"/**"},{"line_number":43,"context_line":" * Configures types for the thresholding topology."}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_baaef02d","side":"PARENT","line":40,"in_reply_to":"9a80dd14_f7827ec6","updated":"2015-03-10 18:33:06.000000000","message":"Eclipse wanted in on the commit :-)","commit_id":"531cc527b65449af17611b9275b0ce1236b88d8d"}],"thresh/src/main/java/monasca/thresh/utils/StatsdConfig.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import java.io.Serializable;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"//"},{"line_number":23,"context_line":"// Intended to deserialize the statsdConfig element in the"},{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_a0f19e6c","line":22,"updated":"2015-03-09 18:48:08.000000000","message":"This should be /** style comments","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import java.io.Serializable;"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"//"},{"line_number":23,"context_line":"// Intended to deserialize the statsdConfig element in the"},{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_fa7f88a9","line":22,"in_reply_to":"9a80dd14_a0f19e6c","updated":"2015-03-10 18:33:06.000000000","message":"Will fix, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":23,"context_line":"// Intended to deserialize the statsdConfig element in the"},{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"},{"line_number":26,"context_line":"public class StatsdConfig implements Serializable {"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    private static final long serialVersionUID \u003d 3634080153227179376L;"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_ab925f49","line":26,"updated":"2015-03-09 18:48:08.000000000","message":"Monasca stand indentation is 2 spaces","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"// Intended to deserialize the statsdConfig element in the"},{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"},{"line_number":26,"context_line":"public class StatsdConfig implements Serializable {"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    private static final long serialVersionUID \u003d 3634080153227179376L;"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_1a7d3cb2","line":26,"in_reply_to":"9a80dd14_ab925f49","updated":"2015-03-10 18:33:06.000000000","message":"Will fix, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"},{"line_number":26,"context_line":"public class StatsdConfig implements Serializable {"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    private static final long serialVersionUID \u003d 3634080153227179376L;"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    private String host;"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_0a9a5bc5","line":27,"updated":"2015-03-10 14:45:45.000000000","message":"If you are using IntelliJ then you should grab the Google Java Style template which will help with all these formatting issues.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"// /etc/monasca/thresh-config.yml"},{"line_number":25,"context_line":"//"},{"line_number":26,"context_line":"public class StatsdConfig implements Serializable {"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    private static final long serialVersionUID \u003d 3634080153227179376L;"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    private String host;"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_da59e45c","line":27,"in_reply_to":"9a80dd14_0a9a5bc5","updated":"2015-03-10 18:33:06.000000000","message":"Eclipse was helping :-)","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"}],"thresh/src/main/java/monasca/thresh/utils/StatsdMetricConsumer.java":[{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":16,"context_line":" *"},{"line_number":17,"context_line":" *  Copyright 2013 Endgame Inc."},{"line_number":18,"context_line":" *"},{"line_number":19,"context_line":" */"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"package monasca.thresh.utils;"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_0a5dfbec","line":19,"updated":"2015-03-10 14:45:45.000000000","message":"This license/copyright header isn\u0027t correct.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12108,"name":"Gary Hessler","email":"gary.hessler@hp.com","username":"garyh"},"change_message_id":"4c4fbf773bf127c26d24b5cdd919f8c9efdfbaa6","unresolved":false,"context_lines":[{"line_number":48,"context_line":"/*"},{"line_number":49,"context_line":" * @author derived from https://github.com/endgameinc/storm-metrics-statsd"},{"line_number":50,"context_line":" *"},{"line_number":51,"context_line":" */"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"public class StatsdMetricConsumer implements IMetricsConsumer {"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_56115a5c","line":51,"updated":"2015-03-10 15:39:00.000000000","message":"Again, I think we should have one library we use for all Java projects that supports dimensions and value_meta and not one specifically for Thresh/Storm, and a different one for the Persister and/or API.  Less maintenance that way.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":48,"context_line":"/*"},{"line_number":49,"context_line":" * @author derived from https://github.com/endgameinc/storm-metrics-statsd"},{"line_number":50,"context_line":" *"},{"line_number":51,"context_line":" */"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"public class StatsdMetricConsumer implements IMetricsConsumer {"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_cabcc309","line":51,"updated":"2015-03-10 14:45:45.000000000","message":"This comment is not useful. Should be removed.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"/*"},{"line_number":49,"context_line":" * @author derived from https://github.com/endgameinc/storm-metrics-statsd"},{"line_number":50,"context_line":" *"},{"line_number":51,"context_line":" */"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"public class StatsdMetricConsumer implements IMetricsConsumer {"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_ba0a7025","line":51,"in_reply_to":"9a80dd14_cabcc309","updated":"2015-03-10 18:33:06.000000000","message":"Will fix, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":50,"context_line":" *"},{"line_number":51,"context_line":" */"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"public class StatsdMetricConsumer implements IMetricsConsumer {"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    public static final Logger LOG \u003d LoggerFactory"},{"line_number":56,"context_line":"            .getLogger(StatsdMetricConsumer.class);"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_2beaefda","line":53,"updated":"2015-03-09 18:48:08.000000000","message":"Indentation is incorrect according the monasca standards. Should be 2 spaces","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":50,"context_line":" *"},{"line_number":51,"context_line":" */"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"public class StatsdMetricConsumer implements IMetricsConsumer {"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    public static final Logger LOG \u003d LoggerFactory"},{"line_number":56,"context_line":"            .getLogger(StatsdMetricConsumer.class);"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_1a029c0b","line":53,"in_reply_to":"9a80dd14_2beaefda","updated":"2015-03-10 18:33:06.000000000","message":"Will fix, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    String topologyName;"},{"line_number":64,"context_line":"    String statsdHost \u003d \"localhost\";"},{"line_number":65,"context_line":"    int statsdPort \u003d 8125;"},{"line_number":66,"context_line":"    String statsdPrefix \u003d \"monasca.storm.metrics.\";"},{"line_number":67,"context_line":"    String monascaStatsdDimPrefix \u003d \"|#\";"},{"line_number":68,"context_line":"    String defaultDimensions \u003d monascaStatsdDimPrefix"},{"line_number":69,"context_line":"            + \"{\\\"service\\\":\\\"monitoring\\\",\\\"component\\\":\\\"storm\\\"}\";"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_edb44137","line":66,"updated":"2015-03-10 14:45:45.000000000","message":"I probably wouldn\u0027t have the \"metrics\" suffix. it is kinda obvious that these are metrics.\n\nI\u0027m also wondering if \"storm\" should be \"thresh\"","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    String topologyName;"},{"line_number":64,"context_line":"    String statsdHost \u003d \"localhost\";"},{"line_number":65,"context_line":"    int statsdPort \u003d 8125;"},{"line_number":66,"context_line":"    String statsdPrefix \u003d \"monasca.storm.metrics.\";"},{"line_number":67,"context_line":"    String monascaStatsdDimPrefix \u003d \"|#\";"},{"line_number":68,"context_line":"    String defaultDimensions \u003d monascaStatsdDimPrefix"},{"line_number":69,"context_line":"            + \"{\\\"service\\\":\\\"monitoring\\\",\\\"component\\\":\\\"storm\\\"}\";"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_d53c57c2","line":66,"in_reply_to":"9a80dd14_edb44137","updated":"2015-03-10 18:33:06.000000000","message":"That makes sense.  I\u0027ll make that change.  This will likely never get used since the user most likely will have a value set in the yml.  This is the default value if the one in the config file is invalid or null.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    public void prepare(Map stormConf, Object registrationArgument,"},{"line_number":108,"context_line":"            TopologyContext context, IErrorReporter errorReporter) {"},{"line_number":109,"context_line":"        logger \u003d LoggerFactory.getLogger(Logging.categoryFor(getClass(),"},{"line_number":110,"context_line":"                context));"},{"line_number":111,"context_line":"        parseConfig(stormConf);"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if (registrationArgument instanceof Map) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_adbfa9fb","line":110,"updated":"2015-03-10 14:45:45.000000000","message":"Why LOG and logger?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":107,"context_line":"    public void prepare(Map stormConf, Object registrationArgument,"},{"line_number":108,"context_line":"            TopologyContext context, IErrorReporter errorReporter) {"},{"line_number":109,"context_line":"        logger \u003d LoggerFactory.getLogger(Logging.categoryFor(getClass(),"},{"line_number":110,"context_line":"                context));"},{"line_number":111,"context_line":"        parseConfig(stormConf);"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        if (registrationArgument instanceof Map) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_9572dfab","line":110,"in_reply_to":"9a80dd14_adbfa9fb","updated":"2015-03-10 18:33:06.000000000","message":"Porting issue, I\u0027ll fix that, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        statsd \u003d new NonBlockingStatsDClient("},{"line_number":118,"context_line":"                statsdPrefix + clean(topologyName), statsdHost, statsdPort);"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        try {"},{"line_number":121,"context_line":"            handler \u003d statsdErrorHandler;"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_cd6a1d81","line":118,"updated":"2015-03-10 14:45:45.000000000","message":"Are there any exceptions that this constructor throws that should be caught, logged and rethrown.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        }"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        statsd \u003d new NonBlockingStatsDClient("},{"line_number":118,"context_line":"                statsdPrefix + clean(topologyName), statsdHost, statsdPort);"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        try {"},{"line_number":121,"context_line":"            handler \u003d statsdErrorHandler;"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_15b50f31","line":118,"in_reply_to":"9a80dd14_cd6a1d81","updated":"2015-03-10 18:33:06.000000000","message":"hmm good point.  I\u0027ll take a look.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            handler \u003d statsdErrorHandler;"},{"line_number":122,"context_line":"            udpclient \u003d new NonBlockingUdpSender(statsdHost, statsdPort,"},{"line_number":123,"context_line":"                    Charset.defaultCharset(), handler);"},{"line_number":124,"context_line":"        } catch (IOException e) {"},{"line_number":125,"context_line":"            logger.error(\"{}\", e);"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_cbc07352","line":124,"updated":"2015-03-09 18:48:08.000000000","message":"The rest of the code doesn\u0027t handle udpclient being null","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":121,"context_line":"            handler \u003d statsdErrorHandler;"},{"line_number":122,"context_line":"            udpclient \u003d new NonBlockingUdpSender(statsdHost, statsdPort,"},{"line_number":123,"context_line":"                    Charset.defaultCharset(), handler);"},{"line_number":124,"context_line":"        } catch (IOException e) {"},{"line_number":125,"context_line":"            logger.error(\"{}\", e);"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_95801f48","line":124,"in_reply_to":"9a80dd14_cbc07352","updated":"2015-03-10 18:33:06.000000000","message":"Good catch, I\u0027ll fix that, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"f6f84fe9a92358dfec5d826fc6bcfe3d76cc02f7","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            udpclient \u003d new NonBlockingUdpSender(statsdHost, statsdPort,"},{"line_number":123,"context_line":"                    Charset.defaultCharset(), handler);"},{"line_number":124,"context_line":"        } catch (IOException e) {"},{"line_number":125,"context_line":"            logger.error(\"{}\", e);"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        logger.info("}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_cdc69d68","line":125,"updated":"2015-03-10 14:45:45.000000000","message":"So, you catch and log, but do you really just want to continue on?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":122,"context_line":"            udpclient \u003d new NonBlockingUdpSender(statsdHost, statsdPort,"},{"line_number":123,"context_line":"                    Charset.defaultCharset(), handler);"},{"line_number":124,"context_line":"        } catch (IOException e) {"},{"line_number":125,"context_line":"            logger.error(\"{}\", e);"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        logger.info("}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_55a5c7b3","line":125,"in_reply_to":"9a80dd14_cdc69d68","updated":"2015-03-10 18:33:06.000000000","message":"I can look at a graceful way to bail out if this fails.  I was looking at this code as a second class citizen.  If it fails then so be it.  I didn\u0027t want to disrupt the processing pipeline.  If we can\u0027t send metrics from Storm/Thresh then there may be a system error or the agent/statsd daemon may be dead.  My thought was to log it and move on since you really need a holistic view of the system to know what\u0027s wrong, which we don\u0027t have in this context.\n\nAny suggestions to handle this another way?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    public static class Metric {"},{"line_number":205,"context_line":"        String name;"},{"line_number":206,"context_line":"        int value;"},{"line_number":207,"context_line":"        String dimensions;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        public Metric(String name, int value, String dimensions) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_0bcd2bb7","line":206,"updated":"2015-03-09 18:48:08.000000000","message":"We can actually handle doubles. Why an int? Is there anything right of the decimal point?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    public static class Metric {"},{"line_number":205,"context_line":"        String name;"},{"line_number":206,"context_line":"        int value;"},{"line_number":207,"context_line":"        String dimensions;"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        public Metric(String name, int value, String dimensions) {"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_b593635b","line":206,"in_reply_to":"9a80dd14_0bcd2bb7","updated":"2015-03-10 18:33:06.000000000","message":"Porting carryover from endgameinc.  I\u0027ll make that change, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                return false;"},{"line_number":229,"context_line":"            if (value !\u003d other.value)"},{"line_number":230,"context_line":"                return false;"},{"line_number":231,"context_line":"            if (dimensions !\u003d other.dimensions)"},{"line_number":232,"context_line":"                return false;"},{"line_number":233,"context_line":"            return true;"},{"line_number":234,"context_line":"        }"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_abec1f2b","line":231,"updated":"2015-03-09 18:48:08.000000000","message":"This needs to use equals() not !\u003d. Ensure not null, though","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":228,"context_line":"                return false;"},{"line_number":229,"context_line":"            if (value !\u003d other.value)"},{"line_number":230,"context_line":"                return false;"},{"line_number":231,"context_line":"            if (dimensions !\u003d other.dimensions)"},{"line_number":232,"context_line":"                return false;"},{"line_number":233,"context_line":"            return true;"},{"line_number":234,"context_line":"        }"}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_35877314","line":231,"in_reply_to":"9a80dd14_abec1f2b","updated":"2015-03-10 18:33:06.000000000","message":"Good catch, thanks.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"f12f20d7ae17679af4531f5b156d814c241fe4d1","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        }"},{"line_number":241,"context_line":"    }"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    List\u003cMetric\u003e dataPointsToMetrics(TaskInfo taskInfo,"},{"line_number":244,"context_line":"            Collection\u003cDataPoint\u003e dataPoints) {"},{"line_number":245,"context_line":"        List\u003cMetric\u003e res \u003d new LinkedList\u003c\u003e();"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_6b3307f6","line":243,"updated":"2015-03-09 18:48:08.000000000","message":"How come no public/private/protected?","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"},{"author":{"_account_id":12149,"name":"Dexter Fryar","email":"dexter.fryar@protonmail.com","username":"dlfryar"},"change_message_id":"0767d4ccffc25b5755cb07017ecf80bb6754165a","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        }"},{"line_number":241,"context_line":"    }"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    List\u003cMetric\u003e dataPointsToMetrics(TaskInfo taskInfo,"},{"line_number":244,"context_line":"            Collection\u003cDataPoint\u003e dataPoints) {"},{"line_number":245,"context_line":"        List\u003cMetric\u003e res \u003d new LinkedList\u003c\u003e();"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-java","patch_set":5,"id":"9a80dd14_b57a8323","line":243,"in_reply_to":"9a80dd14_6b3307f6","updated":"2015-03-10 18:33:06.000000000","message":"Carryover from the port.","commit_id":"a6a7976f1a1a82db5f8faf425976bb9ca15f9f42"}]}
