Comments (6)
Another possibility is to do all of the stats externally, to keep this plugin as light as possible. For example, one could use the dnstap plugin to log these requests, and then build a stats dashboard based on the real-time dnstap data.
from ads.
First of all: Thanks for your suggestion!
Getting rid of the stats thing is probably a good idea. Thats why i have removed the code I already wrote in the master
branch.
I will still consider some way to dynamically configure Block rules, however I am not sure how at the moment.
from ads.
It's not a bad idea, but not sure if its worth the effort. Pretty common is an exporter for Prometheus, writte like https://prometheus.io/docs/instrumenting/writing_exporters/ and also available for coredns itself https://github.com/coredns/coredns/tree/master/plugin/metrics
from ads.
Prometheus is great for simple metrics, like counting how many lookups were blocked vs allowed, but it doesn't do well with high-cardinality metrics, like tracking how many times each specific blocked domain has had a lookup blocked, or what are the top blocked domains. Though perhaps richer stats like that aren't sufficiently interesting to bother with.
from ads.
At this point I want to note that the plugin already exposes (at least it should) some metrics through prometheus:
https://github.com/c-mueller/ads/blob/master/metrics.go
from ads.
Because I think that the prometheus stats expose enough information. I will not further consider the implementation of this part of the api.
Regarding the dynamic configuration of rules I think going the same route as the hosts
plugin is the best solution. This means that Rules can be dynamically configured through a external file. where the path gets defined in the Corefile. This file gets reloaded in a certan interval (or maybe through filesystem hooks).
I will open a new issue for this. This one is closed!
from ads.
Related Issues (20)
- Load blocklists on plugin initialization HOT 1
- Return AAAA record if a blocked QName is queried
- Implement dynamic updating of manually defined rules
- CoreDNS will not compile when using the ads plugin HOT 3
- Expand whitelist/blacklist options to accept URL's and File-Locations HOT 3
- Fix Drone CI
- Legitimate site blocked by "v.firebog.net" HOT 1
- Support non-ASCII domain names HOT 2
- Case when initialization process is stopped and the ads block whont work HOT 1
- ads,会不断的重读,并且读不出列表个数! HOT 14
- auto-update http list will retry endlessly even if download succeeds
- Support more advanced List syntax
- hi,c-mueller! HOT 3
- Cannot compile plugin agains latest coredns HOT 4
- Change Package Name of Caddy to 'github.com/coredns/caddy'
- Improve Exposed Metrics: Add a new metric for blocked request at a given moment HOT 1
- Support CoreDNS 1.8 HOT 2
- Blocklists not updating when using reload HOT 8
- 'auto-update-interval' does not behave as expected
- Adblocking does not work with doh and dot HOT 2
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 ads.