Java源码示例:oi.thekraken.grok.api.Match

示例1
public Map<String, Object> parseLine(String fileName, int lineNum, String line) throws Exception {
  if (line == null || line.isEmpty())
    return null;

  Match gm = grok.match(line);
  gm.captures();

  if (gm.isNull())
    return null;

  Map<String,Object> grokMap = gm.toMap();

  // add the ISO-8601 timestamp field if was requested in the config
  if (timestampFieldName != null) {
    Date timestamp = getLogDate(grokMap);
    if (timestamp != null) {
      grokMap.put(timestampFieldName, iso8601.get().format(timestamp));
    }
  }

  return grokMap;
}
 
示例2
@Override
public GrokValidation validateGrokStatement(GrokValidation grokValidation) throws RestException {
    Map<String, Object> results;
    try {
        if (grokValidation.getPatternLabel() == null) {
          throw new RestException("Pattern label is required");
        }
        if (Strings.isEmpty(grokValidation.getStatement())) {
          throw new RestException("Grok statement is required");
        }
        Grok grok = new Grok();
        grok.addPatternFromReader(new InputStreamReader(getClass().getResourceAsStream(
            "/patterns/common"), StandardCharsets.UTF_8));
        grok.addPatternFromReader(new StringReader(grokValidation.getStatement()));
        String grokPattern = "%{" + grokValidation.getPatternLabel() + "}";
        grok.compile(grokPattern);
        Match gm = grok.match(grokValidation.getSampleData());
        gm.captures();
        results = gm.toMap();
        results.remove(grokValidation.getPatternLabel());
    } catch (Exception e) {
        throw new RestException(e);
    }
    grokValidation.setResults(results);
    return grokValidation;
}
 
示例3
public Map<String, Object> parse(final String input) {
    final Match m = instance.match(input);

    if (m == Match.EMPTY) {
        return ImmutableMap.of();
    }

    m.captures();
    return m.toMap();
}
 
示例4
private Map<String, Object> getMap(String pattern, String text)
		throws GrokException {

	Grok g = grokMap.get(pattern);
	if (g != null) {
		Match gm = g.match(text);
		gm.captures();
		return gm.toMap();
	} else {
		return new HashMap<String, Object>();
	}

}
 
示例5
@SuppressWarnings("unchecked")
private Optional<MessageParserResult<JSONObject>> parseSingleLine(byte[] rawMessage) {
  List<JSONObject> messages = new ArrayList<>();
  Map<Object,Throwable> errors = new HashMap<>();
  String originalMessage = null;
  try {
    originalMessage = new String(rawMessage, StandardCharsets.UTF_8);
    LOG.debug("Grok parser parsing message: {}",originalMessage);
    Match gm = grok.match(originalMessage);
    gm.captures();
    JSONObject message = new JSONObject();
    message.putAll(gm.toMap());

    if (message.size() == 0) {
      Throwable rte = new RuntimeException("Grok statement produced a null message. Original message was: "
              + originalMessage + " and the parsed message was: " + message + " . Check the pattern at: "
              + grokPath);
      errors.put(originalMessage, rte);
    } else {
      message.put("original_string", originalMessage);
      for (String timeField : timeFields) {
        String fieldValue = (String) message.get(timeField);
        if (fieldValue != null) {
          message.put(timeField, toEpoch(fieldValue));
        }
      }
      if (timestampField != null) {
        message.put(Constants.Fields.TIMESTAMP.getName(), formatTimestamp(message.get(timestampField)));
      }
      message.remove(patternLabel);
      postParse(message);
      messages.add(message);
      LOG.debug("Grok parser parsed message: {}", message);
    }
  } catch (Exception e) {
    LOG.error(e.getMessage(), e);
    Exception innerException = new IllegalStateException("Grok parser Error: "
            + e.getMessage()
            + " on "
            + originalMessage, e);
    return Optional.of(new DefaultMessageParserResult<>(innerException));
  }
  return Optional.of(new DefaultMessageParserResult<JSONObject>(messages, errors));
}