Comments (9)
Length of uncompressed chunked GELF message is 12 bytes. Looks like a bug in comment. Lennart?
from graylog2-server.
Hello AlekSi,
Okay but the here's code from GELF.java:
public static final int GELF_HEADER_LENGTH = 38;
byte[] rawGELFHeader = new byte[GELF.GELF_HEADER_LENGTH];
for (int i = 0; i < GELF.GELF_HEADER_LENGTH; i++) {
rawGELFHeader[i] = message.getData()[i];
}
// Make sure that GELF header begins with 30,15 (<3 Boris Erdmann)
if (rawGELFHeader[0] != 30 || rawGELFHeader[1] != 15) {
throw new InvalidGELFHeaderException("Invalid GELF ID.");
}
To me it looks like 38 bytes of GELF header or probably I'm missing something.
A.
from graylog2-server.
I'm in the office right now, but will take a look at this later. Thanks so far!
from graylog2-server.
I researched this and can remember talking about this with Aleksi. Aleksi, is the GELF gem currently using the 12bytes header? The server is definitely still using the 38 byte spec:
public static final int HEADER_PART_SEQCNT_START = 36;
public static final int HEADER_PART_SEQCNT_LENGTH = 2;
Thanks for reporting this, t0xa!
from graylog2-server.
Hello Lennart,
Thanks for clarification. Could you please advice on a implementation then. Should I create an implementation based on 38 bytes header?
For the safe side could you please confirm flow for the chunked GELF in general?
- GZIP long message
- If gzipped message is larger that 1420 bytes (1500 MTU - 28 bytes UDP header = 1472 bytes) 1472 - 12 bytes GELF header which leaves us 1460 bytes of payload. So we split gizpped message in 1460 bytes pieces
- Creating the datagram consisted of GELF header + message piece
- Send via UDP to Graylog server
Thanks a lot for doing great job!
from graylog2-server.
Please use the 38 bytes header for now as this will be working with the current graylog2-server. I'll keep you up to date on when and if to change to the 12 bytes.
Your flow sounds good. (If using 38, not 12 bytes)
from graylog2-server.
Thanks a lot! Maybe it's a good idea to mention the 38 byte business in the GELF Wiki and close this issue?
Anton
from graylog2-server.
Yepp but I'll talk with Aleksi about this first as we already has a discussion on this. :)
from graylog2-server.
This has been clarified in the mean time - You should have received an email today. The GELF documentation is correct now, the server follows it.
from graylog2-server.
Related Issues (20)
- Remove edrop.txt from SpamhausEDROPDataAdapter
- [bug] Data node won't start after (in place) migration: Unable to create injector, Illegal base64 character 3f HOT 1
- Creation of `dashboards` MongoDB view fails on updated system
- HTTP JSONPath Data Adapter: Allow testing data adapter from the creation/edit page
- Remove Deprecated GreyNoise Data Adapters
- Sharing stream with Reader user breaks Streams Page
- Field results auto search does not populate when manually typed in search
- Cloning a stream does not populate the form fields
- Misleading error display when creating stream rules while a message is already loaded
- Notify users when data adapters are no longer available
- Field content breaks message wrap
- Add option to reuse previous time ranges.
- Datanode migration: show warning for unmanaged indices
- Missing Messages due to Grok Pattern in Pipeline Rule Failing Silently #67 HOT 1
- Display timestamp in datanode migration logs
- Allow user to choose 'Browser' as a valid timezone option HOT 4
- Fix dropping of unavailable datanodes
- Reporting: Fix "download report now" button in report history list.
- Show previous values in remote reindex migration form
- Messages returned in search results when filtering by stream even though the message does not exist in the specified streams list HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graylog2-server.