Update to graylog 6
This commit is contained in:
parent
a984d4800f
commit
4d575579cd
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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> {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user