Update to graylog 6

This commit is contained in:
yo000 2025-02-08 10:22:20 +01:00
parent a984d4800f
commit 4d575579cd
4 changed files with 29 additions and 36 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020 johan@nosd.in * Copyright (C) 2024 johan@nosd.in
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the Server Side Public License, version 1, * it under the terms of the Server Side Public License, version 1,

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2020 johan@nosd.in * Copyright (C) 2024 johan@nosd.in
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the Server Side Public License, version 1, * it under the terms of the Server Side Public License, version 1,

View File

@ -16,6 +16,20 @@
*/ */
package in.nosd.redis.dataadapters; package in.nosd.redis.dataadapters;
import java.util.List;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import org.graylog.autovalue.WithBeanGetter;
import org.graylog2.lookup.dto.DataAdapterDto;
import org.graylog2.plugin.lookup.LookupCachePurge;
import org.graylog2.plugin.lookup.LookupDataAdapter;
import org.graylog2.plugin.lookup.LookupDataAdapterConfiguration;
import org.graylog2.plugin.lookup.LookupResult;
import org.joda.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.codahale.metrics.Meter; import com.codahale.metrics.Meter;
import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.MetricRegistry;
import com.codahale.metrics.Timer; import com.codahale.metrics.Timer;
@ -26,37 +40,18 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonTypeName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.google.auto.value.AutoValue; import com.google.auto.value.AutoValue;
import org.graylog2.lookup.dto.DataAdapterDto;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted; import com.google.inject.assistedinject.Assisted;
import org.apache.commons.lang3.StringUtils;
import io.lettuce.core.RedisClient; import io.lettuce.core.RedisClient;
import io.lettuce.core.RedisURI; import io.lettuce.core.RedisURI;
import io.lettuce.core.api.StatefulRedisConnection; import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands; import io.lettuce.core.api.sync.RedisCommands;
import in.nosd.redis.dataadapters.AutoValue_RedisLookupDataAdapter_Config; import jakarta.validation.constraints.Min;
import org.graylog2.plugin.lookup.LookupCachePurge; import jakarta.validation.constraints.NotEmpty;
import org.graylog2.plugin.lookup.LookupDataAdapter; import reactor.util.annotation.Nullable;
import org.graylog2.plugin.lookup.LookupDataAdapterConfiguration;
import org.graylog2.plugin.lookup.LookupResult;
import org.joda.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.annotation.Nullable;
import com.google.inject.Inject;
import com.google.inject.assistedinject.Assisted;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.StringJoiner;
public class RedisLookupDataAdapter extends LookupDataAdapter { public class RedisLookupDataAdapter extends LookupDataAdapter {
private static final Logger LOG = LoggerFactory.getLogger(RedisLookupDataAdapter.class); private static final Logger LOG = LoggerFactory.getLogger(RedisLookupDataAdapter.class);
@ -90,8 +85,8 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
public RedisLookupDataAdapter(@Assisted("dto") DataAdapterDto dto, public RedisLookupDataAdapter(@Assisted("dto") DataAdapterDto dto,
MetricRegistry metricRegistry) { MetricRegistry metricRegistry) {
super(dto, metricRegistry); super(dto, metricRegistry);
this.config = (Config) dto.config(); this.config = (Config) dto.config();
RedisURI redisUri ; RedisURI redisUri ;
redisUri = RedisURI.Builder.redis(this.config.redisHost(),this.config.redisPort()) redisUri = RedisURI.Builder.redis(this.config.redisHost(),this.config.redisPort())
.withPort(this.config.redisPort()) .withPort(this.config.redisPort())
@ -187,7 +182,6 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
// This is deprecated, see setValue // This is deprecated, see setValue
@Deprecated @Deprecated
public void set(Object key, Object value) { public void set(Object key, Object value) {
return;
} }
@Override @Override
@ -195,6 +189,7 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
return setValueWithTtl(key, value, this.config.redisKeyTTL()); return setValueWithTtl(key, value, this.config.redisKeyTTL());
} }
@Override
public LookupResult setValueWithTtl(Object key, Object value, Long ttlSec) { public LookupResult setValueWithTtl(Object key, Object value, Long ttlSec) {
final Timer.Context time = redisSetRequestTimer.time(); final Timer.Context time = redisSetRequestTimer.time();
final String trimmedKey = StringUtils.trimToNull(key.toString()); final String trimmedKey = StringUtils.trimToNull(key.toString());
@ -273,6 +268,7 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
} }
// TTL -1 = never expire // TTL -1 = never expire
@Override
public LookupResult assignTtl(Object key, Long ttlSec) { public LookupResult assignTtl(Object key, Long ttlSec) {
final Timer.Context time = redisAssignTtlRequestTimer.time(); final Timer.Context time = redisAssignTtlRequestTimer.time();
final String trimmedKey = StringUtils.trimToNull(key.toString()); final String trimmedKey = StringUtils.trimToNull(key.toString());
@ -347,11 +343,12 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
} }
} }
@Override
public LookupResult setStringListWithTtl(Object key, List<String> listValue, Long ttlSec) { public LookupResult setStringListWithTtl(Object key, List<String> listValue, Long ttlSec) {
final Timer.Context time = redisSetStringListWithTtlRequestTimer.time(); final Timer.Context time = redisSetStringListWithTtlRequestTimer.time();
try { try {
setStringList(key, listValue); setStringList(key, listValue);
return(assignTtl(key, ttlSec)); return assignTtl(key, ttlSec);
} catch (Exception e) { } catch (Exception e) {
// This exception comes from assignTtl // This exception comes from assignTtl
if (e.getMessage().startsWith("WRONGTYPE Operation against a key holding the wrong kind of value")) { if (e.getMessage().startsWith("WRONGTYPE Operation against a key holding the wrong kind of value")) {
@ -420,11 +417,12 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
@AutoValue @AutoValue
@WithBeanGetter
@JsonAutoDetect @JsonAutoDetect
@JsonDeserialize(builder = RedisLookupDataAdapter.Config.Builder.class) @JsonDeserialize(builder = AutoValue_RedisLookupDataAdapter_Config.Builder.class)
@JsonTypeName(NAME) @JsonTypeName(NAME)
@JsonInclude(JsonInclude.Include.NON_EMPTY) @JsonInclude(JsonInclude.Include.NON_EMPTY)
public abstract static class Config implements LookupDataAdapterConfiguration { public static abstract class Config implements LookupDataAdapterConfiguration {
@Override @Override
@JsonProperty(TYPE_FIELD) @JsonProperty(TYPE_FIELD)
@ -472,11 +470,6 @@ public class RedisLookupDataAdapter extends LookupDataAdapter {
@AutoValue.Builder @AutoValue.Builder
public abstract static class Builder { public abstract static class Builder {
@JsonCreator
public static Builder create() {
return Config.builder();
}
@JsonProperty(TYPE_FIELD) @JsonProperty(TYPE_FIELD)
public abstract Builder type(String type); public abstract Builder type(String type);

View File

@ -30,7 +30,7 @@ import org.graylog2.plugin.lookup.LookupResult;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.inject.Inject; import com.google.inject.Inject;
public class RedisLookupPluginFunction extends LookupTableFunction<GenericLookupResult> { public class RedisLookupPluginFunction extends LookupTableFunction<GenericLookupResult> {