filterstats

package
v0.0.0-...-56e3cfe Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 17, 2025 License: EUPL-1.2 Imports: 12 Imported by: 0

README

filterstats

Name

filterstats - collect domain filter statistics in Redis.

Description

The filterstats plugin counts queries that were blocked by the domainfilter plugin.

The following Redis counters are used:

Key Value
PREFIX:blocked_queries:BLOCKLIST Number of blocked queries for the specific timestamp, client IP and blocking list
PREFIX:queries Total number of queries for the specific timestamp and client IP
stats_total:dns:blocked_queries:BLOCKLIST Total number of blocked queries for the specific blocking list
stats_total:dns:queries Total number of queries

Where PREFIX is a combination of the current minute of the day and the client's IP address:

dns_stats:YYYYMMDDhhmm:CLIENT_IP

Syntax

filterstats

Examples

Collect stats from the configured domainfilter:

. {
    filterstats
    domainfilter localhost:7777 deny
    metadata
}

Metadata

The plugin will read the following metadata, if the metadata and domainfilter plugins are also enabled:

  • domainfilter/blockedbylist: the domain in the query was blocked by the given list

See also

The relevant classes in the ICAP server are:

Documentation

Overview

* Copyright 2024 eBlocker Open Source UG (haftungsbeschraenkt) * * Licensed under the EUPL, Version 1.2 or - as soon they will be * approved by the European Commission - subsequent versions of the EUPL * (the "License"); You may not use this work except in compliance with * the License. You may obtain a copy of the License at: * * https://joinup.ec.europa.eu/page/eupl-text-11-12 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License.

* Copyright 2024 eBlocker Open Source UG (haftungsbeschraenkt) * * Licensed under the EUPL, Version 1.2 or - as soon they will be * approved by the European Commission - subsequent versions of the EUPL * (the "License"); You may not use this work except in compliance with * the License. You may obtain a copy of the License at: * * https://joinup.ec.europa.eu/page/eupl-text-11-12 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BackgroundCounter

type BackgroundCounter struct {
	// contains filtered or unexported fields
}

BackgroundCounter has a channel to send keys to increment to. It uses a Database to count. Closing the stopChannel stops the background process.

type Counter

type Counter interface {
	// contains filtered or unexported methods
}

A Counter counts occurrences of keys.

type Database

type Database interface {
	// contains filtered or unexported methods
}

Database receives counts of keys in a map.

type FilterStats

type FilterStats struct {
	Next plugin.Handler
	// contains filtered or unexported fields
}

FilterStats represents the plugin's configuration.

func NewFilterStats

func NewFilterStats(next plugin.Handler) *FilterStats

NewFilterStats creates a FilterStats logging to the Redis database.

func (*FilterStats) Name

func (stats *FilterStats) Name() string

Name implements plugin.Handler.

func (*FilterStats) ServeDNS

func (stats *FilterStats) ServeDNS(ctx context.Context, writer dns.ResponseWriter, req *dns.Msg) (int, error)

ServeDNS implements plugin.Handler.

type RedisDatabase

type RedisDatabase struct {
	// contains filtered or unexported fields
}

RedisDatabase connects to Redis.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL