未验证 提交 5f37ccfd 编写于 作者: wu-sheng's avatar wu-sheng 提交者: GitHub

Merge pull request #27 from innerpeacez/remove-archive

remove archive
......@@ -7,15 +7,6 @@ To install and configure skywalking in a Kubernetes cluster, follow these instru
## Structure of repository
### archive
Prior to 6.0.0-GA, only kubernetes YAMLs as examples for users and should be modified to fix real kuberentes enviroment,
for instance, resources, volume claims.
Now, these YAMLs are archived in the repository, that means we never maintain them, but users still could use them.
We recommend using __helm-chart__ as your first choice.
### helm-chart
This is recommended as the best practice to deploy SkyWalking backend stack into kubernetes cluster.
......
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
clusterIP: None
ports:
- port: 9200
name: serving
- port: 9300
name: node-to-node
selector:
service: elasticsearch
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
serviceName: elasticsearch
# NOTE: This is number of nodes that we want to run
# you may update this
replicas: 3
selector:
matchLabels:
service: elasticsearch
template:
metadata:
labels:
service: elasticsearch
spec:
terminationGracePeriodSeconds: 300
initContainers:
# NOTE:
# This is to fix the permission on the volume
# By default elasticsearch container is not run as
# non root user.
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: fix-the-volume-permission
image: busybox
command:
- sh
- -c
- chown -R 1000:1000 /usr/share/elasticsearch/data
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
# NOTE:
# To increase the default vm.max_map_count to 262144
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
- name: increase-the-vm-max-map-count
image: busybox
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
# To increase the ulimit
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: increase-the-ulimit
image: busybox
command:
- sh
- -c
- ulimit -n 65536
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: tcp
# NOTE: you can increase this resources
resources:
requests:
memory: 8Gi
limits:
memory: 16Gi
env:
# NOTE: the cluster name; update this
- name: cluster.name
value: elasticsearch-cluster
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
# NOTE: This will tell the elasticsearch node where to connect to other nodes to form a cluster
- name: discovery.zen.ping.unicast.hosts
value: elasticsearch:9300
# NOTE: You can increase the heap size
- name: ES_JAVA_OPTS
value: -Xms4g -Xmx4g
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
storageClassName: ssd
# NOTE: You can increase the storage size
resources:
requests:
storage: 500Gi
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: adapter
metadata:
name: swadapter
namespace: istio-system
spec:
description:
session_based: false
templates:
- metric
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: handler
metadata:
name: sw
namespace: istio-system
spec:
adapter: swadapter
connection:
address: "oap.skywalking.svc.cluster.local:11800"
---
# instance for template metric
apiVersion: "config.istio.io/v1alpha2"
kind: instance
metadata:
name: swmetric
namespace: istio-system
spec:
template: metric
params:
value: request.size | 0
dimensions:
sourceService: source.workload.name | ""
sourceNamespace: source.workload.namespace | ""
sourceUID: source.uid | ""
destinationService: destination.workload.name | ""
destinationNamespace: destination.workload.namespace | ""
destinationUID: destination.uid | ""
requestMethod: request.method | ""
requestPath: request.path | ""
requestScheme: request.scheme | ""
requestTime: request.time
responseTime: response.time
responseCode: response.code | 200
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination")
apiProtocol: api.protocol | ""
---
# rule to dispatch to handler sw
apiVersion: "config.istio.io/v1alpha2"
kind: rule
metadata:
name: swmetric-rule
namespace: istio-system
spec:
actions:
- handler: sw.istio-system
instances:
- swmetric
# SkyWalking Istio adaptor
The SkyWalking uses Istio bypass adapter collects metrics. Use `kubectl apply -f` with the `yaml`(s) in this folder to setup.
apiVersion: v1
kind: Namespace
metadata:
name: skywalking
labels:
name: skywalking
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ServiceAccount
metadata:
name: skywalking-oap
namespace: skywalking
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: skywalking-oap
namespace: skywalking
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: skywalking-oap
subjects:
- kind: ServiceAccount
name: skywalking-oap
namespace: skywalking
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: skywalking
name: skywalking-oap
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ConfigMap
metadata:
name: oap-config
namespace: skywalking
data:
application.yml: |-
cluster:
kubernetes:
watchTimeoutSeconds: 60
namespace: skywalking
labelSelector: app=oap
uidEnvName: SKYWALKING_COLLECTOR_UID
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.0
gRPCPort: 11800
downsampling:
- Hour
- Day
- Month
recordDataTTL: 90 # Unit is minute
minuteMetricsDataTTL: 90 # Unit is minute
hourMetricsDataTTL: 36 # Unit is hour
dayMetricsDataTTL: 45 # Unit is day
monthMetricsDataTTL: 18 # Unit is month
storage:
elasticsearch:
clusterNodes: elasticsearch:9200
indexShardsNumber: 2
indexReplicasNumber: 0
bulkActions: 2000 # Execute the bulk every 2000 requests
bulkSize: 20 # flush the bulk every 20mb
flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: 2 # the number of concurrent requests
receiver-register:
default:
receiver-trace:
default:
bufferPath: /trace-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
receiver-jvm:
default:
service-mesh:
default:
bufferPath: /mesh-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
istio-telemetry:
default:
query:
graphql:
path: /graphql
alarm:
default:
telemetry:
prometheus:
log4j2.xml: |-
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
</Console>
</Appenders>
<Loggers>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
<logger name="io.grpc.netty" level="INFO"/>
<logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
alarm-settings.yml: |-
rules:
service_resp_time_rule:
indicator-name: service_resp_time
include-names:
- dubbox-provider
- dubbox-consumer
threshold: 1000
op: ">"
period: 10
count: 1
webhooks:
component-libraries.yml: |-
Tomcat:
id: 1
languages: Java
HttpClient:
id: 2
languages: Java,C#,Node.js
Dubbo:
id: 3
languages: Java
H2:
id: 4
languages: Java
Mysql:
id: 5
languages: Java,C#,Node.js
ORACLE:
id: 6
languages: Java
Redis:
id: 7
languages: Java,C#,Node.js
Motan:
id: 8
languages: Java
MongoDB:
id: 9
languages: Java,C#,Node.js
Resin:
id: 10
languages: Java
Feign:
id: 11
languages: Java
OKHttp:
id: 12
languages: Java
SpringRestTemplate:
id: 13
languages: Java
SpringMVC:
id: 14
languages: Java
Struts2:
id: 15
languages: Java
NutzMVC:
id: 16
languages: Java
NutzHttp:
id: 17
languages: Java
JettyClient:
id: 18
languages: Java
JettyServer:
id: 19
languages: Java
Memcached:
id: 20
languages: Java
ShardingJDBC:
id: 21
languages: Java
PostgreSQL:
id: 22
languages: Java,C#,Node.js
GRPC:
id: 23
languages: Java
ElasticJob:
id: 24
languages: Java
RocketMQ:
id: 25
languages: Java
httpasyncclient:
id: 26
languages: Java
Kafka:
id: 27
languages: Java
ServiceComb:
id: 28
languages: Java
Hystrix:
id: 29
languages: Java
Jedis:
id: 30
languages: Java
SQLite:
id: 31
languages: Java,C#
h2-jdbc-driver:
id: 32
languages: Java
mysql-connector-java:
id: 33
languages: Java
ojdbc:
id: 34
languages: Java
Spymemcached:
id: 35
languages: Java
Xmemcached:
id: 36
languages: Java
postgresql-jdbc-driver:
id: 37
languages: Java
rocketMQ-producer:
id: 38
languages: Java
rocketMQ-consumer:
id: 39
languages: Java
kafka-producer:
id: 40
languages: Java
kafka-consumer:
id: 41
languages: Java
mongodb-driver:
id: 42
languages: Java
SOFARPC:
id: 43
languages: Java
ActiveMQ:
id: 44
languages: Java
activemq-producer:
id: 45
languages: Java
activemq-consumer:
id: 46
languages: Java
Elasticsearch:
id: 47
languages: Java
transport-client:
id: 48
languages: Java
http:
id: 49
languages: Java,C#,Node.js
rpc:
id: 50
languages: Java,C#,Node.js
RabbitMQ:
id: 51
languages: Java
rabbitmq-producer:
id: 52
languages: Java
rabbitmq-consumer:
id: 53
languages: Java
Canal:
id: 54
languages: Java
Gson:
id: 55
languages: Java
Redisson:
id: 56
languages: Java
AspNetCore:
id: 3001
languages: C#
EntityFrameworkCore:
id: 3002
languages: C#
SqlClient:
id: 3003
languages: C#
CAP:
id: 3004
languages: C#
StackExchange.Redis:
id: 3005
languages: C#
SqlServer:
id: 3006
languages: C#
Npgsql:
id: 3007
languages: C#
MySqlConnector:
id: 3008
languages: C#
EntityFrameworkCore.InMemory:
id: 3009
languages: C#
EntityFrameworkCore.SqlServer:
id: 3010
languages: C#
EntityFrameworkCore.Sqlite:
id: 3011
languages: C#
Pomelo.EntityFrameworkCore.MySql:
id: 3012
languages: C#
Npgsql.EntityFrameworkCore.PostgreSQL:
id: 3013
languages: C#
InMemoryDatabase:
id: 3014
languages: C#
AspNet:
id: 3015
languages: C#
# NoeJS components
# [4000, 5000) for Node.js agent
HttpServer:
id: 4001
languages: Node.js
express:
id: 4002
languages: Node.js
Egg:
id: 4003
languages: Node.js
Koa:
id: 4004
languages: Node.js
# Component Server mapping defines the server display names of some components
# e.g.
# Jedis is a client library in Java for Redis server
Component-Server-Mappings:
mongodb-driver: MongoDB
rocketMQ-producer: RocketMQ
rocketMQ-consumer: RocketMQ
kafka-producer: Kafka
kafka-consumer: Kafka
activemq-producer: ActiveMQ
activemq-consumer: ActiveMQ
rabbitmq-producer: RabbitMQ
rabbitmq-consumer: RabbitMQ
postgresql-jdbc-driver: PostgreSQL
Xmemcached: Memcached
Spymemcached: Memcached
h2-jdbc-driver: H2
mysql-connector-java: Mysql
Jedis: Redis
StackExchange.Redis: Redis
Redisson: Redis
SqlClient: SqlServer
Npgsql: PostgreSQL
MySqlConnector: Mysql
EntityFrameworkCore.InMemory: InMemoryDatabase
EntityFrameworkCore.SqlServer: SqlServer
EntityFrameworkCore.Sqlite: SQLite
Pomelo.EntityFrameworkCore.MySql: Mysql
Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
transport-client: Elasticsearch
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: oap
namespace: skywalking
labels:
service: oap
spec:
ports:
- port: 12800
name: rest
- port: 11800
name: grpc
selector:
app: oap
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: oap-deployment
namespace: skywalking
labels:
app: oap
spec:
replicas: 3
selector:
matchLabels:
app: oap
template:
metadata:
labels:
app: oap
spec:
serviceAccountName: skywalking-oap
containers:
- name: oap
image: apache/skywalking-oap-server:6.0.0-GA
ports:
- containerPort: 11800
name: grpc
- containerPort: 12800
name: rest
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: JAVA_OPTS
value: -Xms256M -Xmx512M
- name: SKYWALKING_COLLECTOR_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
volumeMounts:
- name: config
mountPath: /skywalking/config
volumes:
- name: config
configMap:
name: oap-config
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: ui
namespace: skywalking
labels:
service: ui
spec:
ports:
- port: 80
name: page
targetPort: page
type: LoadBalancer
selector:
app: ui
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui-deployment
namespace: skywalking
labels:
app: ui
spec:
replicas: 1
selector:
matchLabels:
app: ui
template:
metadata:
labels:
app: ui
spec:
containers:
- name: ui
image: skywalking/ui:6.0.0-GA
ports:
- containerPort: 8080
name: page
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: collector.ribbon.listOfServers
value: oap:12800
- name: collector.ribbon.ReadTimeout
value: "20000"
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
clusterIP: None
ports:
- port: 9200
name: serving
- port: 9300
name: node-to-node
selector:
service: elasticsearch
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
serviceName: elasticsearch
# NOTE: This is number of nodes that we want to run
# you may update this
replicas: 3
selector:
matchLabels:
service: elasticsearch
template:
metadata:
labels:
service: elasticsearch
spec:
terminationGracePeriodSeconds: 300
initContainers:
# NOTE:
# This is to fix the permission on the volume
# By default elasticsearch container is not run as
# non root user.
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: fix-the-volume-permission
image: busybox
command:
- sh
- -c
- chown -R 1000:1000 /usr/share/elasticsearch/data
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
# NOTE:
# To increase the default vm.max_map_count to 262144
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
- name: increase-the-vm-max-map-count
image: busybox
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
# To increase the ulimit
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: increase-the-ulimit
image: busybox
command:
- sh
- -c
- ulimit -n 65536
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: tcp
# NOTE: you can increase this resources
resources:
requests:
memory: 8Gi
limits:
memory: 16Gi
env:
# NOTE: the cluster name; update this
- name: cluster.name
value: elasticsearch-cluster
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
# NOTE: This will tell the elasticsearch node where to connect to other nodes to form a cluster
- name: discovery.zen.ping.unicast.hosts
value: elasticsearch:9300
# NOTE: You can increase the heap size
- name: ES_JAVA_OPTS
value: -Xms4g -Xmx4g
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
storageClassName: ssd
# NOTE: You can increase the storage size
resources:
requests:
storage: 500Gi
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: adapter
metadata:
name: swadapter
namespace: istio-system
spec:
description:
session_based: false
templates:
- metric
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: handler
metadata:
name: sw
namespace: istio-system
spec:
adapter: swadapter
connection:
address: "oap.skywalking.svc.cluster.local:11800"
---
# instance for template metric
apiVersion: "config.istio.io/v1alpha2"
kind: instance
metadata:
name: swmetric
namespace: istio-system
spec:
template: metric
params:
value: request.size | 0
dimensions:
sourceService: source.workload.name | ""
sourceNamespace: source.workload.namespace | ""
sourceUID: source.uid | ""
destinationService: destination.workload.name | ""
destinationNamespace: destination.workload.namespace | ""
destinationUID: destination.uid | ""
requestMethod: request.method | ""
requestPath: request.path | ""
requestScheme: request.scheme | ""
requestTime: request.time
responseTime: response.time
responseCode: response.code | 200
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination")
apiProtocol: api.protocol | ""
---
# rule to dispatch to handler sw
apiVersion: "config.istio.io/v1alpha2"
kind: rule
metadata:
name: swmetric-rule
namespace: istio-system
spec:
actions:
- handler: sw.istio-system
instances:
- swmetric
apiVersion: v1
kind: Namespace
metadata:
name: skywalking
labels:
name: skywalking
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ServiceAccount
metadata:
name: skywalking-oap
namespace: skywalking
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: skywalking-oap
namespace: skywalking
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: skywalking-oap
subjects:
- kind: ServiceAccount
name: skywalking-oap
namespace: skywalking
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: skywalking
name: skywalking-oap
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ConfigMap
metadata:
name: oap-config
namespace: skywalking
data:
application.yml: |-
cluster:
kubernetes:
watchTimeoutSeconds: 60
namespace: skywalking
labelSelector: app=oap
uidEnvName: SKYWALKING_COLLECTOR_UID
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.0
gRPCPort: 11800
downsampling:
- Hour
- Day
- Month
recordDataTTL: 90 # Unit is minute
minuteMetricsDataTTL: 90 # Unit is minute
hourMetricsDataTTL: 36 # Unit is hour
dayMetricsDataTTL: 45 # Unit is day
monthMetricsDataTTL: 18 # Unit is month
storage:
elasticsearch:
clusterNodes: elasticsearch:9200
indexShardsNumber: 2
indexReplicasNumber: 0
bulkActions: 2000 # Execute the bulk every 2000 requests
bulkSize: 20 # flush the bulk every 20mb
flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: 2 # the number of concurrent requests
receiver-register:
default:
receiver-trace:
default:
bufferPath: /trace-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
receiver-jvm:
default:
service-mesh:
default:
bufferPath: /mesh-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
istio-telemetry:
default:
query:
graphql:
path: /graphql
alarm:
default:
log4j2.xml: |-
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
</Console>
</Appenders>
<Loggers>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
<logger name="io.grpc.netty" level="INFO"/>
<logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
alarm-settings.yml: |-
rules:
service_resp_time_rule:
indicator-name: service_resp_time
include-names:
- dubbox-provider
- dubbox-consumer
threshold: 1000
op: ">"
period: 10
count: 1
webhooks:
component-libraries.yml: |-
Tomcat:
id: 1
languages: Java
HttpClient:
id: 2
languages: Java,C#,Node.js
Dubbo:
id: 3
languages: Java
H2:
id: 4
languages: Java
Mysql:
id: 5
languages: Java,C#,Node.js
ORACLE:
id: 6
languages: Java
Redis:
id: 7
languages: Java,C#,Node.js
Motan:
id: 8
languages: Java
MongoDB:
id: 9
languages: Java,C#,Node.js
Resin:
id: 10
languages: Java
Feign:
id: 11
languages: Java
OKHttp:
id: 12
languages: Java
SpringRestTemplate:
id: 13
languages: Java
SpringMVC:
id: 14
languages: Java
Struts2:
id: 15
languages: Java
NutzMVC:
id: 16
languages: Java
NutzHttp:
id: 17
languages: Java
JettyClient:
id: 18
languages: Java
JettyServer:
id: 19
languages: Java
Memcached:
id: 20
languages: Java
ShardingJDBC:
id: 21
languages: Java
PostgreSQL:
id: 22
languages: Java,C#,Node.js
GRPC:
id: 23
languages: Java
ElasticJob:
id: 24
languages: Java
RocketMQ:
id: 25
languages: Java
httpasyncclient:
id: 26
languages: Java
Kafka:
id: 27
languages: Java
ServiceComb:
id: 28
languages: Java
Hystrix:
id: 29
languages: Java
Jedis:
id: 30
languages: Java
SQLite:
id: 31
languages: Java,C#
h2-jdbc-driver:
id: 32
languages: Java
mysql-connector-java:
id: 33
languages: Java
Spymemcached:
id: 35
languages: Java
Xmemcached:
id: 36
languages: Java
postgresql-jdbc-driver:
id: 37
languages: Java
rocketMQ-producer:
id: 38
languages: Java
rocketMQ-consumer:
id: 39
languages: Java
kafka-producer:
id: 40
languages: Java
kafka-consumer:
id: 41
languages: Java
mongodb-driver:
id: 42
languages: Java
SOFARPC:
id: 43
languages: Java
ActiveMQ:
id: 44
languages: Java
activemq-producer:
id: 45
languages: Java
activemq-consumer:
id: 46
languages: Java
Elasticsearch:
id: 47
languages: Java
transport-client:
id: 48
languages: Java
AspNetCore:
id: 3001
languages: C#
EntityFrameworkCore:
id: 3002
languages: C#
SqlClient:
id: 3003
languages: C#
CAP:
id: 3004
languages: C#
StackExchange.Redis:
id: 3005
languages: C#
SqlServer:
id: 3006
languages: C#
Npgsql:
id: 3007
languages: C#
MySqlConnector:
id: 3008
languages: C#
EntityFrameworkCore.InMemory:
id: 3009
languages: C#
EntityFrameworkCore.SqlServer:
id: 3010
languages: C#
EntityFrameworkCore.Sqlite:
id: 3011
languages: C#
Pomelo.EntityFrameworkCore.MySql:
id: 3012
languages: C#
Npgsql.EntityFrameworkCore.PostgreSQL:
id: 3013
languages: C#
InMemoryDatabase:
id: 3014
languages: C#
AspNet:
id: 3015
languages: C#
# NoeJS components
# [4000, 5000) for Node.js agent
HttpServer:
id: 4001
languages: Node.js
express:
id: 4002
languages: Node.js
Egg:
id: 4003
languages: Node.js
Koa:
id: 4004
languages: Node.js
Component-Server-Mappings:
mongodb-driver: MongoDB
rocketMQ-producer: RocketMQ
rocketMQ-consumer: RocketMQ
kafka-producer: Kafka
kafka-consumer: Kafka
activemq-producer: ActiveMQ
activemq-consumer: ActiveMQ
postgresql-jdbc-driver: PostgreSQL
Xmemcached: Memcached
Spymemcached: Memcached
h2-jdbc-driver: H2
mysql-connector-java: Mysql
Jedis: Redis
StackExchange.Redis: Redis
SqlClient: SqlServer
Npgsql: PostgreSQL
MySqlConnector: Mysql
EntityFrameworkCore.InMemory: InMemoryDatabase
EntityFrameworkCore.SqlServer: SqlServer
EntityFrameworkCore.Sqlite: SQLite
Pomelo.EntityFrameworkCore.MySql: Mysql
Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
transport-client: Elasticsearch
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: oap
namespace: skywalking
labels:
service: oap
spec:
ports:
- port: 12800
name: rest
- port: 11800
name: grpc
selector:
app: oap
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: oap-deployment
namespace: skywalking
labels:
app: oap
spec:
replicas: 3
selector:
matchLabels:
app: oap
template:
metadata:
labels:
app: oap
spec:
serviceAccountName: skywalking-oap
containers:
- name: oap
image: skywalking/oap:6.0.0-alpha
ports:
- containerPort: 11800
name: grpc
- containerPort: 12800
name: rest
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: JAVA_OPTS
value: -Xms256M -Xmx512M
- name: SKYWALKING_COLLECTOR_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
volumeMounts:
- name: config
mountPath: /skywalking/config
volumes:
- name: config
configMap:
name: oap-config
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: ui
namespace: skywalking
labels:
service: ui
spec:
ports:
- port: 80
name: page
targetPort: page
type: LoadBalancer
selector:
app: ui
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui-deployment
namespace: skywalking
labels:
app: ui
spec:
replicas: 1
selector:
matchLabels:
app: ui
template:
metadata:
labels:
app: ui
spec:
containers:
- name: ui
image: skywalking/ui:6.0.0-alpha
ports:
- containerPort: 8080
name: page
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: collector.ribbon.listOfServers
value: oap:12800
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: ssd
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
clusterIP: None
ports:
- port: 9200
name: serving
- port: 9300
name: node-to-node
selector:
service: elasticsearch
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
namespace: skywalking
labels:
service: elasticsearch
spec:
serviceName: elasticsearch
# NOTE: This is number of nodes that we want to run
# you may update this
replicas: 3
selector:
matchLabels:
service: elasticsearch
template:
metadata:
labels:
service: elasticsearch
spec:
terminationGracePeriodSeconds: 300
initContainers:
# NOTE:
# This is to fix the permission on the volume
# By default elasticsearch container is not run as
# non root user.
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: fix-the-volume-permission
image: busybox
command:
- sh
- -c
- chown -R 1000:1000 /usr/share/elasticsearch/data
securityContext:
privileged: true
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
# NOTE:
# To increase the default vm.max_map_count to 262144
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
- name: increase-the-vm-max-map-count
image: busybox
command:
- sysctl
- -w
- vm.max_map_count=262144
securityContext:
privileged: true
# To increase the ulimit
# https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#_notes_for_production_use_and_defaults
- name: increase-the-ulimit
image: busybox
command:
- sh
- -c
- ulimit -n 65536
securityContext:
privileged: true
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.3.2
ports:
- containerPort: 9200
name: http
- containerPort: 9300
name: tcp
# NOTE: you can increase this resources
resources:
requests:
memory: 8Gi
limits:
memory: 16Gi
env:
# NOTE: the cluster name; update this
- name: cluster.name
value: elasticsearch-cluster
- name: node.name
valueFrom:
fieldRef:
fieldPath: metadata.name
# NOTE: This will tell the elasticsearch node where to connect to other nodes to form a cluster
- name: discovery.zen.ping.unicast.hosts
value: elasticsearch:9300
# NOTE: You can increase the heap size
- name: ES_JAVA_OPTS
value: -Xms4g -Xmx4g
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
storageClassName: ssd
# NOTE: You can increase the storage size
resources:
requests:
storage: 500Gi
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: adapter
metadata:
name: swadapter
namespace: istio-system
spec:
description:
session_based: false
templates:
- metric
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "config.istio.io/v1alpha2"
kind: handler
metadata:
name: sw
namespace: istio-system
spec:
adapter: swadapter
connection:
address: "oap.skywalking.svc.cluster.local:11800"
---
# instance for template metric
apiVersion: "config.istio.io/v1alpha2"
kind: instance
metadata:
name: swmetric
namespace: istio-system
spec:
template: metric
params:
value: request.size | 0
dimensions:
sourceService: source.workload.name | ""
sourceNamespace: source.workload.namespace | ""
sourceUID: source.uid | ""
destinationService: destination.workload.name | ""
destinationNamespace: destination.workload.namespace | ""
destinationUID: destination.uid | ""
requestMethod: request.method | ""
requestPath: request.path | ""
requestScheme: request.scheme | ""
requestTime: request.time
responseTime: response.time
responseCode: response.code | 200
reporter: conditional((context.reporter.kind | "inbound") == "outbound", "source", "destination")
apiProtocol: api.protocol | ""
---
# rule to dispatch to handler sw
apiVersion: "config.istio.io/v1alpha2"
kind: rule
metadata:
name: swmetric-rule
namespace: istio-system
spec:
actions:
- handler: sw.istio-system
instances:
- swmetric
apiVersion: v1
kind: Namespace
metadata:
name: skywalking
labels:
name: skywalking
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ServiceAccount
metadata:
name: skywalking-oap
namespace: skywalking
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: skywalking-oap
namespace: skywalking
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: skywalking-oap
subjects:
- kind: ServiceAccount
name: skywalking-oap
namespace: skywalking
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: skywalking
name: skywalking-oap
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: ConfigMap
metadata:
name: oap-config
namespace: skywalking
data:
application.yml: |-
cluster:
kubernetes:
watchTimeoutSeconds: 60
namespace: skywalking
labelSelector: app=oap
uidEnvName: SKYWALKING_COLLECTOR_UID
core:
default:
restHost: 0.0.0.0
restPort: 12800
restContextPath: /
gRPCHost: 0.0.0.0
gRPCPort: 11800
downsampling:
- Hour
- Day
- Month
recordDataTTL: 90 # Unit is minute
minuteMetricsDataTTL: 90 # Unit is minute
hourMetricsDataTTL: 36 # Unit is hour
dayMetricsDataTTL: 45 # Unit is day
monthMetricsDataTTL: 18 # Unit is month
storage:
elasticsearch:
clusterNodes: elasticsearch:9200
indexShardsNumber: 2
indexReplicasNumber: 0
bulkActions: 2000 # Execute the bulk every 2000 requests
bulkSize: 20 # flush the bulk every 20mb
flushInterval: 10 # flush the bulk every 10 seconds whatever the number of requests
concurrentRequests: 2 # the number of concurrent requests
receiver-register:
default:
receiver-trace:
default:
bufferPath: /trace-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
receiver-jvm:
default:
service-mesh:
default:
bufferPath: /mesh-buffer/ # Path to trace buffer files, suggest to use absolute path
bufferOffsetMaxFileSize: 100 # Unit is MB
bufferDataMaxFileSize: 500 # Unit is MB
bufferFileCleanWhenRestart: false
istio-telemetry:
default:
query:
graphql:
path: /graphql
alarm:
default:
log4j2.xml: |-
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout charset="UTF-8" pattern="%d - %c -%-4r [%t] %-5p %x - %m%n"/>
</Console>
</Appenders>
<Loggers>
<logger name="org.eclipse.jetty" level="INFO"/>
<logger name="org.apache.zookeeper" level="INFO"/>
<logger name="org.elasticsearch.common.network.IfConfig" level="INFO"/>
<logger name="io.grpc.netty" level="INFO"/>
<logger name="org.apache.skywalking.oap.server.receiver.istio.telemetry" level="DEBUG"/>
<Root level="INFO">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
alarm-settings.yml: |-
rules:
service_resp_time_rule:
indicator-name: service_resp_time
include-names:
- dubbox-provider
- dubbox-consumer
threshold: 1000
op: ">"
period: 10
count: 1
webhooks:
component-libraries.yml: |-
Tomcat:
id: 1
languages: Java
HttpClient:
id: 2
languages: Java,C#,Node.js
Dubbo:
id: 3
languages: Java
H2:
id: 4
languages: Java
Mysql:
id: 5
languages: Java,C#,Node.js
ORACLE:
id: 6
languages: Java
Redis:
id: 7
languages: Java,C#,Node.js
Motan:
id: 8
languages: Java
MongoDB:
id: 9
languages: Java,C#,Node.js
Resin:
id: 10
languages: Java
Feign:
id: 11
languages: Java
OKHttp:
id: 12
languages: Java
SpringRestTemplate:
id: 13
languages: Java
SpringMVC:
id: 14
languages: Java
Struts2:
id: 15
languages: Java
NutzMVC:
id: 16
languages: Java
NutzHttp:
id: 17
languages: Java
JettyClient:
id: 18
languages: Java
JettyServer:
id: 19
languages: Java
Memcached:
id: 20
languages: Java
ShardingJDBC:
id: 21
languages: Java
PostgreSQL:
id: 22
languages: Java,C#,Node.js
GRPC:
id: 23
languages: Java
ElasticJob:
id: 24
languages: Java
RocketMQ:
id: 25
languages: Java
httpasyncclient:
id: 26
languages: Java
Kafka:
id: 27
languages: Java
ServiceComb:
id: 28
languages: Java
Hystrix:
id: 29
languages: Java
Jedis:
id: 30
languages: Java
SQLite:
id: 31
languages: Java,C#
h2-jdbc-driver:
id: 32
languages: Java
mysql-connector-java:
id: 33
languages: Java
Spymemcached:
id: 35
languages: Java
Xmemcached:
id: 36
languages: Java
postgresql-jdbc-driver:
id: 37
languages: Java
rocketMQ-producer:
id: 38
languages: Java
rocketMQ-consumer:
id: 39
languages: Java
kafka-producer:
id: 40
languages: Java
kafka-consumer:
id: 41
languages: Java
mongodb-driver:
id: 42
languages: Java
SOFARPC:
id: 43
languages: Java
ActiveMQ:
id: 44
languages: Java
activemq-producer:
id: 45
languages: Java
activemq-consumer:
id: 46
languages: Java
Elasticsearch:
id: 47
languages: Java
transport-client:
id: 48
languages: Java
AspNetCore:
id: 3001
languages: C#
EntityFrameworkCore:
id: 3002
languages: C#
SqlClient:
id: 3003
languages: C#
CAP:
id: 3004
languages: C#
StackExchange.Redis:
id: 3005
languages: C#
SqlServer:
id: 3006
languages: C#
Npgsql:
id: 3007
languages: C#
MySqlConnector:
id: 3008
languages: C#
EntityFrameworkCore.InMemory:
id: 3009
languages: C#
EntityFrameworkCore.SqlServer:
id: 3010
languages: C#
EntityFrameworkCore.Sqlite:
id: 3011
languages: C#
Pomelo.EntityFrameworkCore.MySql:
id: 3012
languages: C#
Npgsql.EntityFrameworkCore.PostgreSQL:
id: 3013
languages: C#
InMemoryDatabase:
id: 3014
languages: C#
AspNet:
id: 3015
languages: C#
# NoeJS components
# [4000, 5000) for Node.js agent
HttpServer:
id: 4001
languages: Node.js
express:
id: 4002
languages: Node.js
Egg:
id: 4003
languages: Node.js
Koa:
id: 4004
languages: Node.js
Component-Server-Mappings:
mongodb-driver: MongoDB
rocketMQ-producer: RocketMQ
rocketMQ-consumer: RocketMQ
kafka-producer: Kafka
kafka-consumer: Kafka
activemq-producer: ActiveMQ
activemq-consumer: ActiveMQ
postgresql-jdbc-driver: PostgreSQL
Xmemcached: Memcached
Spymemcached: Memcached
h2-jdbc-driver: H2
mysql-connector-java: Mysql
Jedis: Redis
StackExchange.Redis: Redis
SqlClient: SqlServer
Npgsql: PostgreSQL
MySqlConnector: Mysql
EntityFrameworkCore.InMemory: InMemoryDatabase
EntityFrameworkCore.SqlServer: SqlServer
EntityFrameworkCore.Sqlite: SQLite
Pomelo.EntityFrameworkCore.MySql: Mysql
Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
transport-client: Elasticsearch
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: oap
namespace: skywalking
labels:
service: oap
spec:
ports:
- port: 12800
name: rest
- port: 11800
name: grpc
selector:
app: oap
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: oap-deployment
namespace: skywalking
labels:
app: oap
spec:
replicas: 3
selector:
matchLabels:
app: oap
template:
metadata:
labels:
app: oap
spec:
serviceAccountName: skywalking-oap
containers:
- name: oap
image: skywalking/oap:6.0.0-beta
ports:
- containerPort: 11800
name: grpc
- containerPort: 12800
name: rest
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: JAVA_OPTS
value: -Xms256M -Xmx512M
- name: SKYWALKING_COLLECTOR_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
volumeMounts:
- name: config
mountPath: /skywalking/config
volumes:
- name: config
configMap:
name: oap-config
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: v1
kind: Service
metadata:
name: ui
namespace: skywalking
labels:
service: ui
spec:
ports:
- port: 80
name: page
targetPort: page
type: LoadBalancer
selector:
app: ui
\ No newline at end of file
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui-deployment
namespace: skywalking
labels:
app: ui
spec:
replicas: 1
selector:
matchLabels:
app: ui
template:
metadata:
labels:
app: ui
spec:
containers:
- name: ui
image: skywalking/ui:6.0.0-beta
ports:
- containerPort: 8080
name: page
resources:
requests:
memory: 1Gi
limits:
memory: 2Gi
env:
- name: collector.ribbon.listOfServers
value: oap:12800
Apache SkyWalking Kubernetes
==========
# Deploy SkyWalking backend to Kubernetes cluster
To install and configure skywalking in a Kubernetes cluster, follow these instructions.
## Prerequisites
Please promise the `skywalking` namespace existed in the cluster, otherwise, create a new one.
`kubectl apply -f namespace.yml`
## Deploy Elasticsearch
Use `kubectl apply -f ` with the scripts in `elasticsearch` to deploy elasticsearch servers
in the cluster.
> `01-storageclass.yml` assume to use GKE as the kubernetes provisioner. You could fix it according
to your kubernetes environment.
## Deploy OAP server
Use `kubectl apply -f ` with the scripts in `oap` to deploy oap server
in the cluster.
## Deploy UI server
Use `kubectl apply -f ` with the scripts in `ui` to deploy oap server
in the cluster.
# Setup Istio to send metric to oap
## Prerequisites
Istio should be installed in kubernetes cluster.
## Setup Istio to send metric to oap
Use `kubectl apply -f ` with the scripts in `istio` to setup.
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册