grafana / loki

Like Prometheus, but for logs.
https://grafana.com/loki
GNU Affero General Public License v3.0
23.35k stars 3.38k forks source link

promtail GELF listener not handling big logs entries like stack trees #7505

Open millaguie opened 1 year ago

millaguie commented 1 year ago

Describe the bug Promtail GELF listener not handling big logs entries like stack trees

To Reproduce Steps to reproduce the behavior:

  1. Started Loki (SHA or version): not related
  2. Started Promtail (SHA or version) to tail: v2.6.1, with GELF listener, check the end of the report for the configuration used
  3. Run:

echo '{ "host": "6dacac07a666", "short_message": "Unexpected error:", "full_message": "Unexpected error:", "timestamp": 1666686295.712, "level": 3, "facility": "local7", "_LoggerName": "Fluent", "_application": "dolorsitamet", "_SourceSimpleClassName": "Logs$Slf4jLogs", "_StackTrace": "java.lang.IllegalStateException: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus condimentum, tellus non condimentum gravida, massa sapien mollis sem, sit amet sagittis augue elit eu ipsum. Aliquam turpis erat, rhoncus at feugiat ut, malesuada vitae augue. Duis volutpat mauris in metus porttitor posuere. Vestibulum molestie congue ex, eu pharetra purus consequat vitae. Integer vehicula ex risus, at pellentesque nisl lobortis quis. Donec et sem mi. Quisque bibendum nulla nec neque laoreet, eu sagittis nibh varius. Pellentesque interdum urna non turpis tristique, quis porttitor velit ultrices. Praesent non metus eget ante dignissim tincidunt et et justo. Integer risus quam, porttitor ac rutrum quis, facilisis nec nisl. Donec iaculis arcu sem, sit amet consequat nisi vulputate rutrum. Donec iaculis ac lorem eu facilisis. Aliquam a rutrum diam, eget interdum ante. Etiam sit amet venenatis nibh. Nulla ac laoreet dolor, in ullamcorper arcu.\n\tAenean volutpat lacus sit amet ipsum aliquam, ut finibus nisl commodo. Nullam elit lorem, consequat ut nisi vitae, ultrices porta magna. Fusce efficitur elit vel massa gravida, sit amet faucibus turpis cursus. Fusce ornare sapien ut orci pellentesque, finibus hendrerit risus mattis. Aliquam a dolor ullamcorper, pulvinar enim ac, tempor sapien. Nulla ut turpis laoreet, laoreet nisi sed, tincidunt velit. In non aliquam odio. Praesent vestibulum sodales lorem vel rutrum. Aenean consectetur consequat ipsum, sit amet sollicitudin magna molestie et. Aenean ornare nisl a nisl vulputate, sit amet pharetra mauris faucibus. Nullam et orci ut erat elementum commodo eu in quam. Sed viverra convallis diam sed blandit. Etiam sed congue lacus. Aliquam erat volutpat. Proin ornare dictum orci, porttitor ultrices leo luctus eget.\n\tEtiam nec consectetur velit. Praesent vel elit at leo commodo faucibus vel at eros. Morbi ultrices consequat nisl sed pharetra. In a nibh non ex condimentum aliquet tincidunt sed lacus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ac erat vitae mauris tempor dictum et ornare purus. Curabitur dictum lectus at nisi sodales, eget scelerisque orci laoreet. Ut faucibus elementum tortor, et fringilla dui egestas eu. Suspendisse posuere enim sit amet dui tempus viverra. Fusce quis ultrices eros. Nullam convallis lacinia consequat. Aenean congue felis ut erat tristique, quis ullamcorper elit luctus. Sed consectetur molestie condimentum. Duis sodales eu ligula id egestas.\n\tMaecenas condimentum ipsum vitae elementum eleifend. Vestibulum vel nisl gravida, vestibulum mi vel, commodo justo. Phasellus euismod nibh in lobortis tincidunt. Suspendisse tellus purus, dapibus et porta eu, tristique id nisi. Quisque dictum erat sed diam malesuada sollicitudin. Nullam ultricies, quam eu auctor tincidunt, diam odio convallis massa, eget feugiat ex urna ac massa. Nam magna ex, sodales id luctus vitae, fringilla at ex. Interdum et malesuada fames ac ante ipsum primis in faucibus.\n\tDonec lobortis ut purus ut varius. Nulla ac orci blandit, faucibus dui at, fringilla quam. Etiam sem lacus, venenatis at diam quis, accumsan hendrerit massa. Cras in leo ultricies, aliquet tortor vel, dictum urna. Fusce at feugiat ex, sit amet mollis risus. Vestibulum euismod diam ut enim vehicula lobortis. Aliquam suscipit ipsum nec consectetur tincidunt. Integer vel magna aliquet, aliquam ante pretium, sagittis elit. Nam pulvinar ultrices ligula, ut molestie tortor ullamcorper a. Sed lacinia tempus elit nec dictum. Sed vel tincidunt felis. Aliquam erat volutpat. Donec bibendum, dolor ac tempus posuere, ipsum velit sodales ipsum, in ornare erat ex a ex. Etiam eget libero at ipsum molestie laoreet. Etiam quis vulputate sem, vitae varius augue. Mauris sit amet erat id nisl finibus pharetra placerat in justo.\n\tIn auctor turpis finibus tellus tincidunt, non dapibus mi porta. Donec nec suscipit eros, ac aliquet erat. Nam feugiat, nulla sed lobortis condimentum, lacus libero lacinia neque, in vehicula lectus ligula a nulla. Praesent dictum, diam ut dictum commodo, risus dolor tempus diam, et scelerisque justo metus ac nisl. Aliquam eget elit nec orci commodo eleifend. Quisque sed metus a ante elementum elementum. Suspendisse potenti.\n\tQuisque ut elit vel magna malesuada molestie non vitae lectus. Quisque vel ex vulputate, ullamcorper nisl id, lacinia metus. Etiam libero orci, maximus sed nibh sit amet, suscipit blandit enim. In mi lorem, dictum ac tempus id, viverra id sapien. Donec ut consectetur nisl. Curabitur imperdiet neque quis nunc malesuada dictum. In felis tellus, eleifend in nunc vitae, vehicula lacinia justo. Cras suscipit tellus non felis ultricies pharetra. Fusce ut consequat augue. Aliquam in magna vitae libero iaculis sodales at rutrum turpis. Aenean quis ex eget dolor fermentum aliquam. Aenean finibus facilisis lorem interdum facilisis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Maecenas ac lacinia tortor. Maecenas sit amet risus quis diam cursus ornare non nec enim.\n\tSed pulvinar nisl ut pulvinar pharetra. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In dictum a risus nec gravida. Pellentesque elementum cursus tortor et blandit. Aenean id metus diam. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nam ipsum eros, commodo at odio a, posuere bibendum sapien. Morbi id eleifend odio. Morbi faucibus pulvinar consequat. Suspendisse elementum egestas augue a cursus. Donec cursus sollicitudin elit nec tincidunt. Maecenas sodales augue ultricies finibus efficitur. Phasellus scelerisque purus iaculis, fringilla metus at, malesuada nulla.\n\tFusce sodales justo in fringilla pulvinar. Phasellus luctus erat non eros suscipit mollis. Integer dictum ornare feugiat. Donec at elit eget velit vehicula pulvinar. Cras accumsan tellus id cursus laoreet. Pellentesque nec iaculis ex. Cras nec sapien in diam vulputate imperdiet. Donec eget tempus leo.\n\tSuspendisse eget ultricies metus. Mauris pretium purus sit amet lorem fermentum, eleifend eleifend lorem finibus. Duis vitae tempus nunc. Cras viverra faucibus ex, a iaculis mi mollis vitae. Etiam lacinia iaculis lectus, in ultrices dui mattis non. Maecenas rutrum est et ante iaculis egestas. Integer non lorem ut risus porttitor pulvinar vel quis libero. Maecenas nec rutrum mauris. Morbi eu pellentesque erat. Suspendisse at turpis mi. Nulla laoreet nec lectus quis vehicula. Praesent vitae sem nec metus pretium dictum. In nisi leo, ultricies nec ultricies at, vulputate eu metus. Sed nisi metus, suscipit at hendrerit quis, tincidunt eget dolor. Nulla et fringilla dui, at maximus enim. Nulla facilisi.\n\tProin volutpat et dolor quis faucibus. Vivamus feugiat augue vitae quam fermentum rutrum. Sed viverra at purus non congue. Vestibulum vitae feugiat sapien, sed scelerisque ante. Sed faucibus sed magna vel molestie. Pellentesque maximus auctor tortor eget vehicula. Nulla vel ullamcorper ante. Cras purus odio, faucibus id arcu id, vehicula placerat nibh.\n\tAliquam vel diam enim. Maecenas eleifend, sem id lacinia ornare, purus ligula vehicula odio, mollis ultricies velit ipsum non ipsum. Integer viverra orci varius metus aliquam fermentum. Aliquam a lacus ante. Nunc pulvinar, libero sed mattis facilisis, augue erat dapibus tellus, quis iaculis odio mauris quis purus. Mauris malesuada commodo purus, sed faucibus turpis cursus vitae. Morbi pellentesque enim sed eros efficitur, in lacinia nulla maximus. Maecenas maximus metus risus, sed posuere mauris lacinia non. Nulla sed enim vitae elit gravida consequat. Aliquam tempus, dui vel commodo rhoncus, lectus sem interdum nulla, vel viverra nunc nunc egestas quam.\n\tPellentesque posuere ante non tincidunt tincidunt. Fusce tempor, justo vitae pharetra venenatis, ante elit mollis libero, a iaculis purus ipsum in tortor. Nunc sed arcu a nunc molestie iaculis ac sit amet neque. Nunc nec est a diam scelerisque vestibulum. Sed rutrum... 29 more", "_SourceClassName": "net.codestory.http.logs.Logs$Slf4jLogs", "_Time": "2022-10-25 08:24:55,712", "_Severity": "ERROR", "_SourceLineNumber": 141, "_Thread": "Worker: RequestDispatcher: Thread-35", "_SourceMethodName": "error" }' | gzip | nc -u -w 1 localhost 12201


**Expected behavior**
Log is added to the loki

**Environment:**
 - Infrastructure: [e.g., Kubernetes, bare-metal, laptop]
 - Deployment tool: [e.g., helm, jsonnet]

**Screenshots, Promtail config, or terminal output**
Error from promtail:

Oct 25 09:46:38 localhost promtail[116075]: level=error ts=2022-10-25T09:46:38.208633916Z caller=gelftarget.go:100 msg="error while reading gelf message" listen_address=0.0.0.0:12201 err="json.Unmarshal: unexpected EOF"

Promtail GELF configuration:


current workaround:

Reduce the stacktrace to keep the size in a single UDP packet (not very scientific). Start the java process with `-XX:MaxJavaStackTraceDepth=36` instead the default 45 lines
lyz-code commented 1 year ago

We're seeing the same error in our instances, thanks for the patch @millaguie . Can we do something to help debug or fix the issue?