Beispiel #1
0
def ensure_fake_backend(host=None, backend_options=None, fake_services=None):
    if host is None:
        host = get_unique_localhost()

    if fake_services is None:
        with fake_backend.start(host, **(backend_options
                                         or {})) as started_fake_services:
            yield started_fake_services
    else:
        yield fake_services
Beispiel #2
0
    def fill_in_configmap(self, configmap, agent_yaml):
        agent_conf = yaml.safe_load(agent_yaml)
        agent_conf.setdefault("observers", [])
        agent_conf.setdefault("monitors", [])
        agent_conf.setdefault("globalDimensions", {"kubernetes_cluster": self.namespace})
        agent_conf.setdefault("intervalSeconds", 5)
        agent_conf.setdefault("enableBuiltInFiltering", True)
        agent_conf.setdefault("ingestUrl", f"http://{self.fake_services_pod_ip}:{self.fake_services.ingest_port}")
        agent_conf.setdefault("apiUrl", f"http://{self.fake_services_pod_ip}:{self.fake_services.api_port}")
        agent_conf.setdefault("internalStatusHost", get_unique_localhost())

        configmap["data"]["agent.yaml"] = yaml.dump(agent_conf)
Beispiel #3
0
    def fill_in_configmap(self, configmap, agent_yaml):
        agent_conf = yaml.safe_load(agent_yaml)
        agent_conf.setdefault("observers", [])
        agent_conf.setdefault("monitors", [])
        agent_conf.setdefault("writer", {"propertiesSendDelaySeconds": 1})
        agent_conf.setdefault("globalDimensions", {"kubernetes_cluster": self.namespace})
        agent_conf.setdefault("intervalSeconds", 5)
        agent_conf.setdefault("logging", {"level": "debug"})
        agent_conf.setdefault("ingestUrl", f"http://{self.fake_services_pod_ip}:{self.fake_services.ingest_port}")
        agent_conf.setdefault("apiUrl", f"http://{self.fake_services_pod_ip}:{self.fake_services.api_port}")
        agent_conf.setdefault("internalStatusHost", get_unique_localhost())

        configmap["data"]["agent.yaml"] = yaml.dump(agent_conf)
Beispiel #4
0
 def create_agent_configmap(self, configmap_path, agent_yaml=None):
     configmap_yaml = yaml.load(open(configmap_path).read())
     self.configmap_name = configmap_yaml["metadata"]["name"]
     self.delete_agent_configmap()
     if agent_yaml:
         self.agent_yaml = yaml.load(agent_yaml)
         self.observer = self.agent_yaml.setdefault("observers")
         self.monitors = self.agent_yaml.setdefault("monitors", [])
         self.agent_yaml.setdefault(
             "globalDimensions", {"kubernetes_cluster": self.cluster_name})
         self.agent_yaml.setdefault("intervalSeconds", 5)
         self.agent_yaml.setdefault("sendMachineID", True)
         self.agent_yaml.setdefault("useFullyQualifiedHost", False)
         self.agent_yaml.setdefault("internalStatusHost",
                                    get_unique_localhost())
         if self.backend:
             self.agent_yaml.setdefault(
                 "ingestUrl", "http://%s:%d" %
                 (self.backend.ingest_host, self.backend.ingest_port))
             self.agent_yaml.setdefault(
                 "apiUrl", "http://%s:%d" %
                 (self.backend.api_host, self.backend.api_port))
     else:
         self.agent_yaml = yaml.load(configmap_yaml["data"]["agent.yaml"])
         del self.agent_yaml["observers"]
         if not self.observer and self.agent_yaml.get("observers"):
             del self.agent_yaml["observers"]
         elif self.observer == "k8s-api":
             self.agent_yaml["observers"] = [{
                 "type": self.observer,
                 "kubernetesAPI": {
                     "authType": "serviceAccount",
                     "skipVerify": False
                 }
             }]
         elif self.observer == "k8s-kubelet":
             self.agent_yaml["observers"] = [{
                 "type": self.observer,
                 "kubeletAPI": {
                     "authType": "serviceAccount",
                     "skipVerify": True
                 }
             }]
         elif self.observer == "docker":
             self.agent_yaml["observers"] = [{
                 "type":
                 self.observer,
                 "dockerURL":
                 "unix:///var/run/docker.sock"
             }]
         else:
             self.agent_yaml["observers"] = [{"type": self.observer}]
         self.agent_yaml["globalDimensions"][
             "kubernetes_cluster"] = self.cluster_name
         self.agent_yaml["intervalSeconds"] = 5
         self.agent_yaml["sendMachineID"] = True
         self.agent_yaml["useFullyQualifiedHost"] = False
         self.agent_yaml["internalStatusHost"] = get_unique_localhost()
         if self.backend:
             self.agent_yaml["ingestUrl"] = "http://%s:%d" % (
                 self.backend.ingest_host, self.backend.ingest_port)
             self.agent_yaml["apiUrl"] = "http://%s:%d" % (
                 self.backend.api_host, self.backend.api_port)
         if self.agent_yaml.get("metricsToExclude"):
             del self.agent_yaml["metricsToExclude"]
         del self.agent_yaml["monitors"]
         self.agent_yaml["monitors"] = self.monitors
     configmap_yaml["data"]["agent.yaml"] = yaml.dump(self.agent_yaml)
     print(
         "Creating configmap for observer=%s and monitor(s)=%s from %s ..."
         % (self.observer, ",".join([m["type"] for m in self.monitors
                                     ]), configmap_path))
     k8s.create_configmap(body=configmap_yaml, namespace=self.namespace)
     print(self.agent_yaml)