# -*- coding: UTF-8 -*-
"""
Exemple de fichier de config d'agent.

Importer le(s) module(s) d'implémentatoin des agents utilisés, puis
créer un dico {nom: agent} dans la variable globale AGENTS.  Chaque
agent est créé en appelant son constructeur python et en passant les
paramètres utiles.
"""

from zephir.monitor.agents.squid import Squid
from zephir.monitor.agentmanager.config import ACTIVER_SQUID2

# éventuellement un peu de code pour décider des paramètres
# dynamiquement...
period = 120

if ACTIVER_SQUID2:

    datasources = [{'name': "inko", 'min_bound': 0, 'ds_type': 'COUNTER'},
                   {'name': "outko", 'min_bound': 0, 'ds_type': 'COUNTER'},
                   {'name': "server", 'min_bound': 0},
                   {'name': "client", 'min_bound': 0},
                   {'name': "hitsratio", 'min_bound': 0, 'max_bound': 100},
                   {'name': "bytesratio", 'min_bound': 0, 'max_bound': 100}
                  ]
    archives = [{'rows':60, 'steps':1},
                {'rows':24*4, 'steps':900/period},
                {'rows':24*7, 'steps':3600/period}
               ]
    graphs = [{ 'pngname': "http.png",
                'vnamedefs': {"entree": ("inko", 'AVERAGE'),
                              "sortie": ("outko", 'AVERAGE'),
                             },
                'options': ["-l0", '-v koctets/s', '-t Entrees/Sorties HTTP',
                            'AREA:sortie#0000FF:Sortie',
                            'LINE2:entree#00FF00:Entree'
                           ]},
              { 'pngname': "ratio.png",
                'vnamedefs': {"hits": ("hitsratio", 'AVERAGE'),
                              "bytes": ("bytesratio", 'AVERAGE'),
                             },
                'options': ["-u100", "-l0", '-v %', '-t Taux de reussite du cache',
                            'AREA:hits#FF0000:Hit ratio',
                            'LINE2:bytes#0000FF:Byte ratio'
                           ]},
              { 'pngname': "request.png",
                'vnamedefs': {"server": ("server", 'AVERAGE'),
                              "client": ("client", 'AVERAGE'),
                             },
                'options': ["-l0", '-v req/s', '-t Requetes',
                            'AREA:client#0000FF:Clients (demandes)',
                            'LINE2:server#FF0000:Serveurs (reponses hors cache)'
                           ]},
             ]

    squid = Squid(
        "squid2-stats", period=period,
        snmp_port = '3402',
        description = """Statistiques Squid2""",
        section = """Utilisation""",
        datasources = datasources,
        archives = archives,
        graphs = graphs,
        requires = ['squid'])
    # liste des agents qui seront chargés
    AGENTS = [squid]

else:
    AGENTS = []
