From 9ba8d7eb90d33e28adb8b826dec46520950eb775 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Thu, 12 Mar 2020 18:39:16 -0500 Subject: [PATCH 01/10] Split lsif-server and lsif-worker. --- base/lsif-server/lsif-server.Deployment.yaml | 16 ++-- base/lsif-server/lsif-server.Service.yaml | 11 ++- base/lsif-server/lsif-worker.Deployment.yaml | 78 ++++++++++++++++++++ base/lsif-server/lsif-worker.Service.yaml | 23 ++++++ base/prometheus/prometheus.ConfigMap.yaml | 59 +++++++++++++++ 5 files changed, 177 insertions(+), 10 deletions(-) create mode 100644 base/lsif-server/lsif-worker.Deployment.yaml create mode 100644 base/lsif-server/lsif-worker.Service.yaml diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index f67ebbf4e0f2..15ab2a09e652 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - description: LSIF HTTP server for code intelligence. + description: LSIF HTTP server for LSIF-based precise code intelligence. labels: deploy: sourcegraph name: lsif-server @@ -25,25 +25,29 @@ spec: spec: containers: - env: + - name: LSIF_NUM_SERVERS + value: '1' + - name: LSIF_NUM_WORKERS + value: '0' - name: LSIF_STORAGE_ROOT value: /lsif-storage - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - image: index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e + image: sourcegraph/lsif-server:efritz-dev-temp2 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e terminationMessagePolicy: FallbackToLogsOnError name: lsif-server livenessProbe: httpGet: - path: /ping + path: /healthz port: server scheme: HTTP initialDelaySeconds: 60 timeoutSeconds: 5 readinessProbe: httpGet: - path: /ping + path: /healthz port: server scheme: HTTP periodSeconds: 5 @@ -51,8 +55,8 @@ spec: ports: - containerPort: 3186 name: server - - containerPort: 3187 - name: worker + - containerPort: 9090 + name: prometheus resources: limits: cpu: "2" diff --git a/base/lsif-server/lsif-server.Service.yaml b/base/lsif-server/lsif-server.Service.yaml index 08cbe4eaecf1..214f9c90e2a6 100644 --- a/base/lsif-server/lsif-server.Service.yaml +++ b/base/lsif-server/lsif-server.Service.yaml @@ -2,19 +2,22 @@ apiVersion: v1 kind: Service metadata: annotations: - sourcegraph.prometheus/scrape: "true" + prometheus.io/port: "9090" + sourcegraph.prometheus/federate: "true" labels: app: lsif-server deploy: sourcegraph name: lsif-server spec: ports: + # HTTP API and health endpoint - name: server port: 3186 targetPort: server - - name: worker - port: 3187 - targetPort: worker + # For metrics and federation + - name: prometheus + port: 9090 + targetPort: prometheus selector: app: lsif-server type: ClusterIP diff --git a/base/lsif-server/lsif-worker.Deployment.yaml b/base/lsif-server/lsif-worker.Deployment.yaml new file mode 100644 index 000000000000..58595ddac125 --- /dev/null +++ b/base/lsif-server/lsif-worker.Deployment.yaml @@ -0,0 +1,78 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + annotations: + description: The workers that process LSIF uploads. + labels: + deploy: sourcegraph + name: lsif-worker +spec: + minReadySeconds: 10 + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app: lsif-worker + strategy: + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + labels: + app: lsif-worker + spec: + containers: + - env: + - name: LSIF_NUM_SERVERS + value: '0' + - name: LSIF_NUM_WORKERS + value: '4' + - name: LSIF_STORAGE_ROOT + value: /lsif-storage + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + image: sourcegraph/lsif-server:efritz-dev-temp2 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e + terminationMessagePolicy: FallbackToLogsOnError + name: lsif-worker + livenessProbe: + httpGet: + path: /healthz + port: worker + scheme: HTTP + initialDelaySeconds: 60 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /healthz + port: worker + scheme: HTTP + periodSeconds: 5 + timeoutSeconds: 5 + ports: + - containerPort: 3187 + name: worker + - containerPort: 9090 + name: prometheus + resources: + limits: + cpu: "2" + memory: 2G + requests: + cpu: 500m + memory: 500M + volumeMounts: + - mountPath: /lsif-storage + name: lsif-storage + securityContext: + runAsUser: 100 + runAsGroup: 100 + securityContext: + fsGroup: 100 + volumes: + - name: lsif-storage + persistentVolumeClaim: + claimName: lsif-server diff --git a/base/lsif-server/lsif-worker.Service.yaml b/base/lsif-server/lsif-worker.Service.yaml new file mode 100644 index 000000000000..74b7690742f9 --- /dev/null +++ b/base/lsif-server/lsif-worker.Service.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: + prometheus.io/port: "9090" + sourcegraph.prometheus/federate: "true" + labels: + app: lsif-worker + deploy: sourcegraph + name: lsif-worker +spec: + ports: + # For health endpoint ONLY + - name: worker + port: 3187 + targetPort: worker + # For metrics and federation + - name: prometheus + port: 9090 + targetPort: prometheus + selector: + app: lsif-worker + type: ClusterIP diff --git a/base/prometheus/prometheus.ConfigMap.yaml b/base/prometheus/prometheus.ConfigMap.yaml index 175d9a2417f7..f5138b06dd43 100644 --- a/base/prometheus/prometheus.ConfigMap.yaml +++ b/base/prometheus/prometheus.ConfigMap.yaml @@ -156,6 +156,65 @@ data: action: replace target_label: instance + # Scrape config for federated Prometheus instance endpoints. This is currently only + # used to proxy the metrics from multiple processes inside the lsif-server container + # to be made available (as we can't have Prometheus scrape a dynamic port range based + # on a ConfigMap value). + # + # + # The relabeling allows the actual service scrape endpoint to be configured + # via the following annotations: + # + # * `prometheus.io/federate`: Only scrape services that have a value of `true` + # * `prometheus.io/scheme`: If the metrics endpoint is secured then you will need + # to set this to `https` & most likely set the `tls_config` of the scrape config. + # * `prometheus.io/port`: The port the Prometheus cluster is exposed on (usually 9090). + # + # TODO(efritz,uwedeportivo) - see if the value for 'match[]' can be supplied as an + # annotation so that this selector can be generalized if we want to use federation for + # another application in the future. + - job_name: 'kubernetes-federate' + honor_labels: true + metrics_path: '/federate' + params: + 'match[]': + - '{__name__=~"lsif_.*"}' + + kubernetes_sd_configs: + - role: endpoints + + relabel_configs: + - source_labels: [__meta_kubernetes_service_annotation_sourcegraph_prometheus_federate] + action: keep + regex: true + - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme] + action: replace + target_label: __scheme__ + regex: (https?) + - source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port] + action: replace + target_label: __address__ + regex: (.+)(?::\d+);(\d+) + replacement: $1:$2 + - action: labelmap + regex: __meta_kubernetes_service_label_(.+) + - source_labels: [__meta_kubernetes_namespace] + action: replace + # Sourcegraph specific customization. We want a more convenient to type label. + # target_label: kubernetes_namespace + target_label: ns + - source_labels: [__meta_kubernetes_service_name] + action: replace + target_label: kubernetes_name + # Sourcegraph specific customization. We want a nicer name for job + - source_labels: [app] + action: replace + target_label: job + # Sourcegraph specific customization. We want a nicer name for instance + - source_labels: [__meta_kubernetes_pod_name] + action: replace + target_label: instance + # Example scrape config for probing services via the Blackbox Exporter. # # The relabeling allows the actual service scrape endpoint to be configured From 9ce75933b570bb9f9e816a2400e097f395bc1958 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Fri, 13 Mar 2020 09:31:43 -0500 Subject: [PATCH 02/10] Revert worker split. --- base/lsif-server/lsif-server.Deployment.yaml | 8 +- base/lsif-server/lsif-server.Service.yaml | 4 + base/lsif-server/lsif-worker.Deployment.yaml | 78 -------------------- base/lsif-server/lsif-worker.Service.yaml | 23 ------ 4 files changed, 7 insertions(+), 106 deletions(-) delete mode 100644 base/lsif-server/lsif-worker.Deployment.yaml delete mode 100644 base/lsif-server/lsif-worker.Service.yaml diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index 15ab2a09e652..a5c89f9fbada 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - description: LSIF HTTP server for LSIF-based precise code intelligence. + description: HTTP server for LSIF-based precise code intelligence. labels: deploy: sourcegraph name: lsif-server @@ -25,10 +25,6 @@ spec: spec: containers: - env: - - name: LSIF_NUM_SERVERS - value: '1' - - name: LSIF_NUM_WORKERS - value: '0' - name: LSIF_STORAGE_ROOT value: /lsif-storage - name: POD_NAME @@ -55,6 +51,8 @@ spec: ports: - containerPort: 3186 name: server + - containerPort: 3187 + name: worker - containerPort: 9090 name: prometheus resources: diff --git a/base/lsif-server/lsif-server.Service.yaml b/base/lsif-server/lsif-server.Service.yaml index 214f9c90e2a6..586bdbb46c3f 100644 --- a/base/lsif-server/lsif-server.Service.yaml +++ b/base/lsif-server/lsif-server.Service.yaml @@ -14,6 +14,10 @@ spec: - name: server port: 3186 targetPort: server + # Health endpoint + - name: worker + port: 3187 + targetPort: worker # For metrics and federation - name: prometheus port: 9090 diff --git a/base/lsif-server/lsif-worker.Deployment.yaml b/base/lsif-server/lsif-worker.Deployment.yaml deleted file mode 100644 index 58595ddac125..000000000000 --- a/base/lsif-server/lsif-worker.Deployment.yaml +++ /dev/null @@ -1,78 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - annotations: - description: The workers that process LSIF uploads. - labels: - deploy: sourcegraph - name: lsif-worker -spec: - minReadySeconds: 10 - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app: lsif-worker - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 1 - type: RollingUpdate - template: - metadata: - labels: - app: lsif-worker - spec: - containers: - - env: - - name: LSIF_NUM_SERVERS - value: '0' - - name: LSIF_NUM_WORKERS - value: '4' - - name: LSIF_STORAGE_ROOT - value: /lsif-storage - - name: POD_NAME - valueFrom: - fieldRef: - fieldPath: metadata.name - image: sourcegraph/lsif-server:efritz-dev-temp2 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e - terminationMessagePolicy: FallbackToLogsOnError - name: lsif-worker - livenessProbe: - httpGet: - path: /healthz - port: worker - scheme: HTTP - initialDelaySeconds: 60 - timeoutSeconds: 5 - readinessProbe: - httpGet: - path: /healthz - port: worker - scheme: HTTP - periodSeconds: 5 - timeoutSeconds: 5 - ports: - - containerPort: 3187 - name: worker - - containerPort: 9090 - name: prometheus - resources: - limits: - cpu: "2" - memory: 2G - requests: - cpu: 500m - memory: 500M - volumeMounts: - - mountPath: /lsif-storage - name: lsif-storage - securityContext: - runAsUser: 100 - runAsGroup: 100 - securityContext: - fsGroup: 100 - volumes: - - name: lsif-storage - persistentVolumeClaim: - claimName: lsif-server diff --git a/base/lsif-server/lsif-worker.Service.yaml b/base/lsif-server/lsif-worker.Service.yaml deleted file mode 100644 index 74b7690742f9..000000000000 --- a/base/lsif-server/lsif-worker.Service.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: - prometheus.io/port: "9090" - sourcegraph.prometheus/federate: "true" - labels: - app: lsif-worker - deploy: sourcegraph - name: lsif-worker -spec: - ports: - # For health endpoint ONLY - - name: worker - port: 3187 - targetPort: worker - # For metrics and federation - - name: prometheus - port: 9090 - targetPort: prometheus - selector: - app: lsif-worker - type: ClusterIP From 017e7daca14ddc319413205da87c252a4513e61b Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Fri, 13 Mar 2020 09:32:24 -0500 Subject: [PATCH 03/10] Remove comments. --- base/lsif-server/lsif-server.Service.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/base/lsif-server/lsif-server.Service.yaml b/base/lsif-server/lsif-server.Service.yaml index 586bdbb46c3f..fd86ff2be0a5 100644 --- a/base/lsif-server/lsif-server.Service.yaml +++ b/base/lsif-server/lsif-server.Service.yaml @@ -10,15 +10,12 @@ metadata: name: lsif-server spec: ports: - # HTTP API and health endpoint - name: server port: 3186 targetPort: server - # Health endpoint - name: worker port: 3187 targetPort: worker - # For metrics and federation - name: prometheus port: 9090 targetPort: prometheus From 8e5658f93f5aef85d38eb06bc86d400d8496254b Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Fri, 13 Mar 2020 09:43:29 -0500 Subject: [PATCH 04/10] Update temp tag. --- base/lsif-server/lsif-server.Deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index a5c89f9fbada..36c79299622b 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -31,7 +31,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: sourcegraph/lsif-server:efritz-dev-temp2 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e + image: sourcegraph/lsif-server:efritz-dev-temp3 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e terminationMessagePolicy: FallbackToLogsOnError name: lsif-server livenessProbe: From 8ded70fe1fcb646676db60dd6680034acbc84126 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Fri, 13 Mar 2020 10:43:41 -0500 Subject: [PATCH 05/10] Restore image. --- base/lsif-server/lsif-server.Deployment.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index 36c79299622b..a4167b85b7e0 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -25,13 +25,15 @@ spec: spec: containers: - env: + - name: LSIF_NUM_WORKERS + value: '4' - name: LSIF_STORAGE_ROOT value: /lsif-storage - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - image: sourcegraph/lsif-server:efritz-dev-temp3 # index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e + image: index.docker.io/sourcegraph/lsif-server:3.13.2@sha256:27d6f82702cd770d02de57a8a74b8b1f338ee3de53eb3979bd2a06f12216bf7e terminationMessagePolicy: FallbackToLogsOnError name: lsif-server livenessProbe: From 3faf0fb300982685931ecf80ca9a1cbce3e92ed6 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Fri, 13 Mar 2020 10:47:57 -0500 Subject: [PATCH 06/10] Still have one worker by default. --- base/lsif-server/lsif-server.Deployment.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index a4167b85b7e0..e3e910a2618f 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -25,8 +25,10 @@ spec: spec: containers: - env: + - name: LSIF_NUM_SERVERS + value: '1' - name: LSIF_NUM_WORKERS - value: '4' + value: '1' - name: LSIF_STORAGE_ROOT value: /lsif-storage - name: POD_NAME From 4d047e2c68815ce35af3e8e9432ed3d715e078a9 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Tue, 17 Mar 2020 12:41:22 -0500 Subject: [PATCH 07/10] Update ports for dump manager. --- base/lsif-server/lsif-server.Deployment.yaml | 12 +++++++++--- base/lsif-server/lsif-server.Service.yaml | 7 +++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index a4167b85b7e0..50def1e522ea 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -25,8 +25,12 @@ spec: spec: containers: - env: - - name: LSIF_NUM_WORKERS - value: '4' + - name: LSIF_NUM_SERVERS + value: '1' + - name: LSIF_NUM_DUMP_MANAGERS + value: '1' + - name: LSIF_NUM_DUMP_PROCESSORS + value: '1' - name: LSIF_STORAGE_ROOT value: /lsif-storage - name: POD_NAME @@ -54,7 +58,9 @@ spec: - containerPort: 3186 name: server - containerPort: 3187 - name: worker + name: dump-manager + - containerPort: 3188 + name: dump-processor - containerPort: 9090 name: prometheus resources: diff --git a/base/lsif-server/lsif-server.Service.yaml b/base/lsif-server/lsif-server.Service.yaml index fd86ff2be0a5..1bb500754a9d 100644 --- a/base/lsif-server/lsif-server.Service.yaml +++ b/base/lsif-server/lsif-server.Service.yaml @@ -13,9 +13,12 @@ spec: - name: server port: 3186 targetPort: server - - name: worker + - name: dump-manager port: 3187 - targetPort: worker + targetPort: dump-manager + - name: dump-processor + port: 3188 + targetPort: dump-processor - name: prometheus port: 9090 targetPort: prometheus From e59f29718f06aa828edf38d1c41bd6f41948e45a Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Tue, 17 Mar 2020 12:42:54 -0500 Subject: [PATCH 08/10] Remove excess exposed ports on lsif-server. --- base/lsif-server/lsif-server.Deployment.yaml | 4 ---- base/lsif-server/lsif-server.Service.yaml | 6 ------ 2 files changed, 10 deletions(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index 50def1e522ea..ac7d9c79a1fe 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -57,10 +57,6 @@ spec: ports: - containerPort: 3186 name: server - - containerPort: 3187 - name: dump-manager - - containerPort: 3188 - name: dump-processor - containerPort: 9090 name: prometheus resources: diff --git a/base/lsif-server/lsif-server.Service.yaml b/base/lsif-server/lsif-server.Service.yaml index 1bb500754a9d..4b18bebfd506 100644 --- a/base/lsif-server/lsif-server.Service.yaml +++ b/base/lsif-server/lsif-server.Service.yaml @@ -13,12 +13,6 @@ spec: - name: server port: 3186 targetPort: server - - name: dump-manager - port: 3187 - targetPort: dump-manager - - name: dump-processor - port: 3188 - targetPort: dump-processor - name: prometheus port: 9090 targetPort: prometheus From 13571700b0ddfbaa6fae1a6f3401c008f920e0f1 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Mon, 30 Mar 2020 09:16:12 -0500 Subject: [PATCH 09/10] Update environment variable names for lsif-server. --- base/lsif-server/lsif-server.Deployment.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index ac7d9c79a1fe..2339d25f8eb9 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -25,11 +25,11 @@ spec: spec: containers: - env: - - name: LSIF_NUM_SERVERS + - name: NUM_APIS value: '1' - - name: LSIF_NUM_DUMP_MANAGERS + - name: NUM_BUNDLE_MANAGERS value: '1' - - name: LSIF_NUM_DUMP_PROCESSORS + - name: NUM_WORKERS value: '1' - name: LSIF_STORAGE_ROOT value: /lsif-storage From f024664af5d97e8a1628076cd7328dae7ad7ad90 Mon Sep 17 00:00:00 2001 From: Eric Fritz Date: Mon, 30 Mar 2020 11:16:34 -0500 Subject: [PATCH 10/10] Update lsif-server.Deployment.yaml --- base/lsif-server/lsif-server.Deployment.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/base/lsif-server/lsif-server.Deployment.yaml b/base/lsif-server/lsif-server.Deployment.yaml index 34ad6a45b2bb..cb7b1ab5805b 100644 --- a/base/lsif-server/lsif-server.Deployment.yaml +++ b/base/lsif-server/lsif-server.Deployment.yaml @@ -25,12 +25,6 @@ spec: spec: containers: - env: - - name: NUM_APIS - value: '1' - - name: NUM_BUNDLE_MANAGERS - value: '1' - - name: NUM_WORKERS - value: '1' - name: PRECISE_CODE_INTEL_BUNDLE_MANAGER_URL value: http://localhost:3187 - name: PRECISE_CODE_INTEL_API_SERVER_URL