75152

show graphite invalid lines

I see lots of lines like this in my graphite logs:

01/10/2014 21:07:12 :: [listener] invalid line received from client HOST:PORT, ignoring

It would greatly help if I could see the invalid line. Some documentation and tutorials suggest graphite would print the offending line directly after the invalid warning, but for me it doesn't. How can I enable this property?

Thanks.

Answer1:

So my attempt to troubleshoot this was a total hack but it worked for me.

Steps

    <li>Edit protocol.py (/opt/graphite/lib/carbon/protocols.py on line 75 and add an additional log line</li> </ul> Before: class MetricLineReceiver(MetricReceiver, LineOnlyReceiver): delimiter = '\n' def lineReceived(self, line): try: metric, value, timestamp = line.strip().split() datapoint = (float(timestamp), float(value)) except: log.listener('invalid line received from client %s, ignoring' % self.peerName ) return self.metricReceived(metric, datapoint) After: class MetricLineReceiver(MetricReceiver, LineOnlyReceiver): delimiter = '\n' def lineReceived(self, line): try: metric, value, timestamp = line.strip().split() datapoint = (float(timestamp), float(value)) except: log.listener('invalid line received from client %s, ignoring' % self.peerName ) log.listener('invalid line - [ %s ]' % line) return self.metricReceived(metric, datapoint)
      <li>

      restart daemon in debug mode

      /usr/bin/python /opt/graphite/bin/carbon-cache.py --pid /opt/graphite/storage/carbon-cache-a.pid --debug start

      </li> <li>find problem metric and fix</li> <li>revert change to protocol.py</li> <li>restart carbon-cache as daemon </li> </ul>

      By doing this I was able to see exactly which metric was causing me grief and address it.

      Hope that helps!

Recommend

  • SQL Query to store text data in a Varbinary(max)
  • Flask can't see modules installed by pip
  • BPEL Designer for Eclipse: how to debug a BPEL process
  • Middleman: referencing URL stored in a data file from markdown
  • Why isn't my mobile website auto-resizing for mobile devices?
  • TypeError: api.getAll is not a function, service method is not recognized
  • Android FileProvider delete file
  • Render a treeview using a for-loop
  • firebase unauth with google doesn't allow change of user
  • PHP problems with current url
  • PHP: Get HTTP Protocol Version (HTTP/1.1 vs HTTP/2)
  • a concept similar to pointers in as3?
  • mysql table locked after php crashes
  • Usage of local dart library
  • UIImagePickerControllerDelegate Methods Not Called When Delegate Not UIViewController
  • Unable to gem install nokogiri
  • numpy 64bit support in PTVS and numpy System.Int64 casting
  • ASP.NET MVC2 Error: No parameterless constructor defined for this object
  • Base64 as method of sanitizing user input for Mysql
  • Efficient User-Agent Regex to find Safari in Python
  • pip in virtualenv gets ConnectTimeoutError
  • CSS bleed-through with cfinput type=“datefield”
  • Android changing fragment order inside FragmentPagerAdapter
  • Implicit joins and Where in Doctrine - how?
  • How to disable all widgets inside Panel or inside Composite?
  • Security issues with PHP's Readfile method
  • Button text different than value submitted in query string
  • Marklogic : Query response time is very high
  • Chrome doesn't support silverlight anymore? How to solve this?
  • Typescript - Unable to get 'import' statement to function
  • How do I fake an specific browser client when using Java's Net library?
  • Bug in WPF DataGrid
  • How to get a value (ex: baseURL) in every Karate feature?
  • Running a C# exe file
  • File upload with ng-file-upload throwing error
  • WPF Applying a trigger on binding failure
  • log4net write single file for each call to log.info
  • Exception on Android 4.0 `android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode)`
  • Checking variable from a different class in C#
  • Running Map reduces the dimensions of the matrices