Example #1
0
def add_checks(params):
    for name, idx in sorted(params['ports'].items()):
        log.msgnb("Adding port %s..." % name)
        check_bundle = {
            "brokers": [ "/broker/%s" % params['broker'] ],
            "config": {
                "community": params['community'],
                "port": params['snmp_port']
            },
            "display_name" : "%s port %s interface stats" % (
                        params['friendly_name'], name),
            "metrics": [],
            "period": 60,
            "status": "active",
            "target": params['target'],
            "timeout": 10,
            "type": "snmp"
        }

        for m in metrics:
            check_bundle["metrics"].append(m)
            check_bundle['config']["oid_%s" % m['name']] = "%s.%s" % (
                    oids[m['name']], idx)

        try:
            api.add_check_bundle(check_bundle)
            log.msgnf("Success")
        except circonusapi.CirconusAPIError, e:
            log.msgnf("Failed")
            log.error(e)
Example #2
0
def add_checks(params):
    for name, idx in sorted(params['ports'].items()):
        log.msgnb("Adding port %s..." % name)
        check_bundle = {
            "brokers": ["/broker/%s" % params['broker']],
            "config": {
                "community": params['community'],
                "port": params['snmp_port']
            },
            "display_name":
            "%s port %s interface stats" % (params['friendly_name'], name),
            "metrics": [],
            "period":
            60,
            "status":
            "active",
            "target":
            params['target'],
            "timeout":
            10,
            "type":
            "snmp"
        }

        for m in metrics:
            check_bundle["metrics"].append(m)
            check_bundle['config']["oid_%s" %
                                   m['name']] = "%s.%s" % (oids[m['name']],
                                                           idx)

        try:
            api.add_check_bundle(check_bundle)
            log.msgnf("Success")
        except circonusapi.CirconusAPIError, e:
            log.msgnf("Failed")
            log.error(e)
Example #3
0
def tag_resources(api, resources, tags, search_field):
    log.msg("Tagging resources:")
    for r in resources:
        old_tags = set(r['tags'])
        new_tags = old_tags | set(tags)
        data = {'tags': list(new_tags)}
        # Exceptions for differnet endpoint types
        if options['endpoint'] == 'graph':
            # You have to provide title/datapoints with any graph changes
            data['title'] = r['title']
            data['datapoints'] = r['datapoints']
        log.debug("Data for %s: %s" % (r['_cid'], data))
        log.msgnb("%s: %s... " % (r['_cid'], r[search_field]))
        if old_tags == new_tags:
            log.msgnf("No change")
            continue
        try:
            api.api_call("PUT", r['_cid'], data)
            log.msgnf("Done")
        except circonusapi.CirconusAPIError, e:
            log.msgnf("Failed")
            log.error(e)
Example #4
0
def tag_resources(api, resources, tags, search_field):
    log.msg("Tagging resources:")
    for r in resources:
        old_tags = set(r['tags'])
        new_tags = old_tags | set(tags)
        data = {'tags': list(new_tags)}
        # Exceptions for differnet endpoint types
        if options['endpoint'] == 'graph':
            # You have to provide title/datapoints with any graph changes
            data['title'] = r['title']
            data['datapoints'] = r['datapoints']
        log.debug("Data for %s: %s" % (r['_cid'], data))
        log.msgnb("%s: %s... " % (r['_cid'], r[search_field]))
        if old_tags == new_tags:
            log.msgnf("No change")
            continue
        try:
            api.api_call("PUT", r['_cid'], data)
            log.msgnf("Done")
        except circonusapi.CirconusAPIError, e:
            log.msgnf("Failed")
            log.error(e)
        processed = t.sub(merged_params)
        to_add.append(processed)
    log.msg("Adding the following:")
    # Mapping of endpoints to which attribute is used as a friendly name
    # TODO - add this as a library function?
    title_fields = {
        "/graph": "title",
        "/check_bundle": "display_name",
        "/rule_set": "metric_name",
        "/worksheet": "description",
        "/template": "name",
        "/contact_group": "name",
        "/account": "name",
        "/broker": "_name",
        "/user": "******"
    }
    for r in to_add:
        field = title_fields[r['_cid']]
        log.msg(r[field])
    if util.confirm("%s additions to be made. Continue?" % len(to_add)):
        for r in to_add:
            field = title_fields[r['_cid']]
            log.msgnb("Adding entry %s..." % r[field])
            try:
                api.api_call("POST", r['_cid'], r)
            except circonusapi.CirconusAPIError, e:
                log.msgnf("Failed")
                log.error(e)
                continue
            log.msgnf("Success")
        else:
            to_add.append(processed)
    log.msg("Adding the following:")
    # Mapping of endpoints to which attribute is used as a friendly name
    # TODO - add this as a library function?
    title_fields = {
        "/graph": "title",
        "/check_bundle": "display_name",
        "/rule_set": "metric_name",
        "/worksheet": "description",
        "/template": "name",
        "/contact_group": "name",
        "/account": "name",
        "/broker": "_name",
        "/user": "******"
    }
    for r in to_add:
        field = title_fields[r['_cid']]
        log.msg(r[field])
    if util.confirm("%s additions to be made. Continue?" % len(to_add)):
        for r in to_add:
            field = title_fields[r['_cid']]
            log.msgnb("Adding entry %s..." % r[field])
            try:
                api.api_call("POST", r['_cid'], r)
            except circonusapi.CirconusAPIError, e:
                log.msgnf("Failed")
                log.error(e)
                continue
            log.msgnf("Success")