This is an automated email from the ASF dual-hosted git repository.
vgalaxies pushed a commit to branch pd-store
in repository https://gitbox.apache.org/repos/asf/incubator-hugegraph.git
The following commit(s) were added to refs/heads/pd-store by this push:
new d56ad1010 feat: added the OpenTelemetry trace support (#2477)
d56ad1010 is described below
commit d56ad10105d48146911e3c4d8a411d668ded2b87
Author: Bond <[email protected]>
AuthorDate: Fri Mar 15 17:30:16 2024 +0800
feat: added the OpenTelemetry trace support (#2477)
TODO: we need enhance our shell experience
---------
Co-authored-by: imbajin <[email protected]>
Co-authored-by: VGalaxies <[email protected]>
---
.gitignore | 3 +
README.md | 6 +-
hugegraph-server/hugegraph-dist/docker/README.md | 41 +++++++++++--
.../docker/conf/grafana-datasources.yaml | 47 +++++++++++++++
.../hugegraph-dist/docker/conf/prometheus.yaml | 28 +++++++++
.../hugegraph-dist/docker/conf/tempo.yaml | 56 +++++++++++++++++
.../docker/example/docker-compose-trace.yaml | 56 +++++++++++++++++
.../src/assembly/static/bin/hugegraph-server.sh | 70 ++++++++++++++++------
.../src/assembly/static/bin/start-hugegraph.sh | 28 +++++----
.../hugegraph-dist/src/assembly/static/bin/util.sh | 3 +-
.../src/assembly/travis/start-server.sh | 5 +-
11 files changed, 306 insertions(+), 37 deletions(-)
diff --git a/.gitignore b/.gitignore
index 47bbf4017..b3afdfd55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -83,3 +83,6 @@ hs_err_pid*
.mtj.tmp/
# blueJ files
*.ctxt
+
+# docker volumes ignore
+hugegraph-server/hugegraph-dist/docker/data/
diff --git a/README.md b/README.md
index 9ad381f1f..64c86a02b 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,9 @@
## What is Apache HugeGraph?
[HugeGraph](https://hugegraph.apache.org/) is a fast-speed and highly-scalable
[graph database](https://en.wikipedia.org/wiki/Graph_database).
-Billions of vertices and edges can be easily stored into and queried from
HugeGraph due to its excellent OLTP ability. As compliance to [Apache TinkerPop
3](https://tinkerpop.apache.org/) framework, various complicated graph queries
can be accomplished through
[Gremlin](https://tinkerpop.apache.org/gremlin.html)(a powerful graph traversal
language).
+Billions of vertices and edges can be easily stored into and queried from
HugeGraph due to its excellent OLTP ability.
+As compliance to [Apache TinkerPop 3](https://tinkerpop.apache.org/)
framework, various complicated graph queries can be
+achieved through [Gremlin](https://tinkerpop.apache.org/gremlin.html)(a
powerful graph traversal language).
## Features
@@ -40,7 +42,7 @@ You can visit [doc
page](https://hugegraph.apache.org/docs/quickstart/hugegraph-
>
> 1. The docker image of hugegraph is a convenience release, but not
> **official distribution** artifacts. You can find more details from [ASF
> Release Distribution
> Policy](https://infra.apache.org/release-distribution.html#dockerhub).
>
-> 2. Recommand to use `release tag`(like `1.2.0`) for the stable version. Use
`latest` tag to experience the newest functions in development.
+> 2. Recommend to use `release tag`(like `1.2.0`) for the stable version. Use
`latest` tag to experience the newest functions in development.
### 2. Download Way
diff --git a/hugegraph-server/hugegraph-dist/docker/README.md
b/hugegraph-server/hugegraph-dist/docker/README.md
index c47d66f8a..47e117168 100644
--- a/hugegraph-server/hugegraph-dist/docker/README.md
+++ b/hugegraph-server/hugegraph-dist/docker/README.md
@@ -4,11 +4,11 @@
>
> 1. The docker image of hugegraph is a convenience release, not official
> distribution artifacts from ASF. You can find more details from [ASF Release
> Distribution
> Policy](https://infra.apache.org/release-distribution.html#dockerhub).
>
-> 2. Recommand to use `release tag`(like `1.2.0`) for the stable version. Use
`latest` tag to experience the newest functions in development.
+> 2. Recommend to use `release tag`(like `1.2.0`) for the stable version. Use
`latest` tag to experience the newest functions in development.
## 1. Deploy
-We can use docker to quickly start an inner HugeGraph server with RocksDB in
background.
+We can use docker to quickly start an inner HugeGraph server with RocksDB in
the background.
1. Using docker run
@@ -29,9 +29,9 @@ We can use docker to quickly start an inner HugeGraph server
with RocksDB in bac
## 2. Create Sample Graph on Server Startup
-If you want to **pre-load** some (test) data or graphs in container(by
default), you can set the env `PRELOAD=ture`
+If you want to **preload** some (test) data or graphs in container(by
default), you can set the env `PRELOAD=ture`
-If you want to customize the pre-loaded data, please mount the the groovy
scripts (not necessary).
+If you want to customize the preloaded data, please mount the groovy scripts
(not necessary).
1. Using docker run
@@ -67,7 +67,7 @@ If you want to customize the pre-loaded data, please mount
the the groovy script
2. Using docker compose
- Similarly, we can set the envionment variables in the docker-compose.yaml:
+ Similarly, we can set the environment variables in the docker-compose.yaml:
```yaml
version: '3'
@@ -81,3 +81,34 @@ If you want to customize the pre-loaded data, please mount
the the groovy script
- AUTH=true
- PASSWORD=123456
```
+## 4. Running Open-Telemetry-Collector
+
+> CAUTION:
+>
+> The `docker-compose-trace.yaml` utilizes `Grafana` and `Grafana-Tempo`, both
of them are licensed under
[AGPL-3.0](https://www.gnu.org/licenses/agpl-3.0.en.html), you should be aware
of and use them with caution. Currently, we mainly provide this template for
everyone to **test**
+>
+1. Start Open-Telemetry-Collector
+
+ ```bash
+ cd hugegraph-server/hugegraph-dist/docker/example
+ docker-compose -f docker-compose-trace.yaml -p hugegraph-trace up -d
+ ```
+
+2. Active Open-Telemetry-Agent
+
+ ```bash
+ ./start-hugegraph.sh -y true
+ ```
+
+3. Stop Open-Telemetry-Collector
+
+ ```bash
+ cd hugegraph-server/hugegraph-dist/docker/example
+ docker-compose -f docker-compose-trace.yaml -p hugegraph-trace stop
+ ```
+
+4. References
+
+ - [What is
OpenTelemetry](https://opentelemetry.io/docs/what-is-opentelemetry/)
+
+ - [Tempo in
Grafana](https://grafana.com/docs/tempo/latest/getting-started/tempo-in-grafana/)
diff --git
a/hugegraph-server/hugegraph-dist/docker/conf/grafana-datasources.yaml
b/hugegraph-server/hugegraph-dist/docker/conf/grafana-datasources.yaml
new file mode 100644
index 000000000..715427210
--- /dev/null
+++ b/hugegraph-server/hugegraph-dist/docker/conf/grafana-datasources.yaml
@@ -0,0 +1,47 @@
+#
+# 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: 1
+
+datasources:
+- name: Prometheus
+ type: prometheus
+ uid: prometheus
+ access: proxy
+ orgId: 1
+ url: http://prometheus:9090
+ basicAuth: false
+ isDefault: false
+ version: 1
+ editable: false
+ jsonData:
+ httpMethod: GET
+- name: Tempo
+ type: tempo
+ access: proxy
+ orgId: 1
+ url: http://tempo:3200
+ basicAuth: false
+ isDefault: true
+ version: 1
+ editable: false
+ apiVersion: 1
+ uid: tempo
+ jsonData:
+ httpMethod: GET
+ serviceMap:
+ datasourceUid: prometheus
diff --git a/hugegraph-server/hugegraph-dist/docker/conf/prometheus.yaml
b/hugegraph-server/hugegraph-dist/docker/conf/prometheus.yaml
new file mode 100644
index 000000000..1d935126a
--- /dev/null
+++ b/hugegraph-server/hugegraph-dist/docker/conf/prometheus.yaml
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+global:
+ scrape_interval: 15s
+ evaluation_interval: 15s
+
+scrape_configs:
+ - job_name: 'prometheus'
+ static_configs:
+ - targets: [ 'localhost:9090' ]
+ - job_name: 'tempo'
+ static_configs:
+ - targets: [ 'tempo:3200' ]
diff --git a/hugegraph-server/hugegraph-dist/docker/conf/tempo.yaml
b/hugegraph-server/hugegraph-dist/docker/conf/tempo.yaml
new file mode 100644
index 000000000..433ee3c06
--- /dev/null
+++ b/hugegraph-server/hugegraph-dist/docker/conf/tempo.yaml
@@ -0,0 +1,56 @@
+#
+# 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.
+#
+
+stream_over_http_enabled: true
+server:
+ http_listen_port: 3200
+ log_level: info
+
+distributor:
+ receivers:
+ otlp:
+ protocols:
+ http:
+ grpc:
+
+compactor:
+ compaction:
+ block_retention: 48h # configure total trace retention here
+
+metrics_generator:
+ registry:
+ external_labels:
+ source: tempo
+
+ storage:
+ path: /tmp/tempo/generator/wal
+ remote_write:
+ - url: http://prometheus:9090/api/v1/write
+ send_exemplars: true
+
+storage:
+ trace:
+ backend: local # backend configuration to use
+ wal:
+ path: /tmp/tempo/wal # where to store the wal locally
+ local:
+ path: /tmp/tempo/blocks
+
+overrides:
+ defaults:
+ metrics_generator:
+ processors: [ service-graphs, span-metrics ] # enables metrics generator
diff --git
a/hugegraph-server/hugegraph-dist/docker/example/docker-compose-trace.yaml
b/hugegraph-server/hugegraph-dist/docker/example/docker-compose-trace.yaml
new file mode 100644
index 000000000..eee6fa49d
--- /dev/null
+++ b/hugegraph-server/hugegraph-dist/docker/example/docker-compose-trace.yaml
@@ -0,0 +1,56 @@
+#
+# 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.
+#
+
+version: "3"
+
+services:
+ tempo:
+ image: grafana/tempo:latest
+ command: ["-config.file=/etc/tempo.yaml"]
+ volumes:
+ - ../conf/tempo.yaml:/etc/tempo.yaml
+ - ../data/tempo:/tmp/tempo
+ ports:
+ - "3200:3200" # tempo
+ - "9095:9095" # tempo grpc
+ - "4317:4317" # otlp grpc
+ - "4318:4318" # otlp http
+
+ prometheus:
+ image: prom/prometheus:latest
+ command:
+ - --config.file=/etc/prometheus.yaml
+ - --web.enable-remote-write-receiver
+ - --enable-feature=exemplar-storage
+ - --storage.tsdb.path=/tmp/data
+ volumes:
+ - ../conf/prometheus.yaml:/etc/prometheus.yaml
+ - ../data/prometheus:/tmp/data
+ ports:
+ - "9090:9090"
+
+ grafana:
+ image: grafana/grafana:10.2.2
+ volumes:
+ -
../conf/grafana-datasources.yaml:/etc/grafana/provisioning/datasources/datasources.yaml
+ environment:
+ - GF_AUTH_ANONYMOUS_ENABLED=true
+ - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
+ - GF_AUTH_DISABLE_LOGIN_FORM=true
+ - GF_FEATURE_TOGGLES_ENABLE=traceqlEditor traceQLStreaming metricsSummary
+ ports:
+ - "3000:3000"
diff --git
a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh
b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh
index 4a08e4b8e..de2fdd8da 100644
---
a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh
+++
b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/hugegraph-server.sh
@@ -15,6 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
function abs_path() {
SOURCE="${BASH_SOURCE[0]}"
while [[ -h "$SOURCE" ]]; do
@@ -39,24 +40,20 @@ EXT="$TOP/ext"
PLUGINS="$TOP/plugins"
LOGS="$TOP/logs"
OUTPUT=${LOGS}/hugegraph-server.log
+GITHUB="https://github.com"
export HUGEGRAPH_HOME="$TOP"
. "${BIN}"/util.sh
-GREMLIN_SERVER_CONF="$1"
-REST_SERVER_CONF="$2"
-OPEN_SECURITY_CHECK="$3"
-
-if [[ $# -eq 3 ]]; then
- USER_OPTION=""
- GC_OPTION=""
-elif [[ $# -eq 4 ]]; then
- USER_OPTION="$4"
- GC_OPTION=""
-elif [[ $# -eq 5 ]]; then
- USER_OPTION="$4"
- GC_OPTION="$5"
-fi
+# Parse the server arguments in array way
+SERVER_ARGS=("$@")
+GREMLIN_SERVER_CONF="${SERVER_ARGS[0]:-}"
+REST_SERVER_CONF="${SERVER_ARGS[1]:-}"
+OPEN_SECURITY_CHECK="${SERVER_ARGS[2]:-}"
+# Param will be empty str("") if not set
+USER_OPTION="${SERVER_ARGS[3]:-}"
+GC_OPTION="${SERVER_ARGS[4]:-}"
+OPEN_TELEMETRY="${SERVER_ARGS[5]:-}"
ensure_path_writable "$LOGS"
ensure_path_writable "$PLUGINS"
@@ -64,11 +61,12 @@ ensure_path_writable "$PLUGINS"
# The maximum and minimum heap memory that service can use
MAX_MEM=$((32 * 1024))
MIN_MEM=$((1 * 512))
+# TODO: upgrade to Java 11 in 1.5.0
MIN_JAVA_VERSION=8
-# download binary file
+# Note: Download for HTTPS, could comment out if you don't need it
if [[ ! -e "${CONF}/hugegraph-server.keystore" ]]; then
- download "${CONF}"
"https://github.com/apache/hugegraph-doc/raw/binary-1.0/dist/server/hugegraph-server.keystore"
+ download "${CONF}"
"${GITHUB}/apache/hugegraph-doc/raw/binary-1.0/dist/server/hugegraph-server.keystore"
fi
# Add the slf4j-log4j12 binding
@@ -81,7 +79,7 @@ CP="$CP":$(find -L $LIB -name '*.jar' \
\! -name 'log4j-slf4j-impl*.jar' | sort | tr '\n' ':')
# Add the jars in ext (at any subdirectory depth)
CP="$CP":$(find -L $EXT -name '*.jar' | sort | tr '\n' ':')
-# Add the jars in plugins (at any subdirectory depth)
+# Add the jars in plugins (at any subdirectory depth), check "javaagent"
related jars carefully
CP="$CP":$(find -L $PLUGINS -name '*.jar' | sort | tr '\n' ':')
# (Cygwin only) Use ; classpath separator and reformat paths for Windows
("C:\foo")
@@ -153,6 +151,44 @@ if [[ ${OPEN_SECURITY_CHECK} == "true" ]]; then
JVM_OPTIONS="${JVM_OPTIONS}
-Djava.security.manager=org.apache.hugegraph.security.HugeSecurityManager"
fi
+if [ "${OPEN_TELEMETRY}" == "true" ]; then
+ OT_JAR="opentelemetry-javaagent.jar"
+ OT_JAR_PATH="${PLUGINS}/${OT_JAR}"
+
+ if [[ ! -e "${OT_JAR_PATH}" ]]; then
+ echo "## Downloading ${OT_JAR}..."
+ download "${PLUGINS}" \
+
"${GITHUB}/open-telemetry/opentelemetry-java-instrumentation/releases/download/v2.1.0/${OT_JAR}"
+
+ if [[ ! -e "${OT_JAR_PATH}" ]]; then
+ echo "## Error: Failed to download ${OT_JAR}." >>${OUTPUT}
+ exit 1
+ fi
+ fi
+
+ # Note: remember update it if we change the jar
+ expected_md5="e3bcbbe8ed9b6d840fa4c333b36f369f"
+ actual_md5=$(md5sum "${OT_JAR_PATH}" | awk '{print $1}')
+
+ if [[ "${expected_md5}" != "${actual_md5}" ]]; then
+ echo "## Error: MD5 checksum verification failed for ${OT_JAR_PATH}."
>>${OUTPUT}
+ echo "## Tips: Remove the file and try again." >>${OUTPUT}
+ exit 1
+ fi
+
+ # Note: check carefully if multi "javeagent" params are set
+ export JAVA_TOOL_OPTIONS="-javaagent:${PLUGINS}/${OT_JAR}"
+ export OTEL_TRACES_EXPORTER=otlp
+ export OTEL_METRICS_EXPORTER=none
+ export OTEL_LOGS_EXPORTER=none
+ export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=grpc
+ # 127.0.0.1:4317 is the port of otel-collector running in Docker located in
+ #
'hugegraph-server/hugegraph-dist/docker/example/docker-compose-trace.yaml'.
+ # Make sure the otel-collector is running before starting HugeGraphServer.
+ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://127.0.0.1:4317
+ export OTEL_RESOURCE_ATTRIBUTES=service.name=server
+fi
+
# Turn on security check
exec ${JAVA} -Dname="HugeGraphServer" ${JVM_OPTIONS} ${JAVA_OPTIONS} -cp
${CLASSPATH}: \
org.apache.hugegraph.dist.HugeGraphServer ${GREMLIN_SERVER_CONF}
${REST_SERVER_CONF} \
diff --git
a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/start-hugegraph.sh
b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/start-hugegraph.sh
index c2e861a1f..9cb5d0e09 100644
--- a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/start-hugegraph.sh
+++ b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/start-hugegraph.sh
@@ -15,14 +15,18 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
OPEN_MONITOR="false"
OPEN_SECURITY_CHECK="true"
+# change to "true" to enable telemetry(Trace) by default
+OPEN_TELEMETRY="false"
DAEMON="true"
#VERBOSE=""
GC_OPTION=""
USER_OPTION=""
SERVER_STARTUP_TIMEOUT_S=30
-# todo: move abs_path funtion to shell like util.sh
+
+# TODO: move abs_path function to shell like util.sh
function abs_path() {
SOURCE="${BASH_SOURCE[0]}"
while [[ -h "$SOURCE" ]]; do
@@ -42,7 +46,8 @@ PID_FILE="$BIN/pid"
. "$BIN"/util.sh
-while getopts "d:g:m:p:s:j:t:v" arg; do
+# Note: keep ':' in the end of the string to indicate the option needs a value
+while getopts "d:g:m:p:s:j:t:y:" arg; do
case ${arg} in
d) DAEMON="$OPTARG" ;;
g) GC_OPTION="$OPTARG" ;;
@@ -51,8 +56,8 @@ while getopts "d:g:m:p:s:j:t:v" arg; do
s) OPEN_SECURITY_CHECK="$OPTARG" ;;
j) USER_OPTION="$OPTARG" ;;
t) SERVER_STARTUP_TIMEOUT_S="$OPTARG" ;;
- # TODO: should remove it in future (check the usage carefully)
- v) VERBOSE="verbose" ;;
+ # Telemetry is used to collect metrics, traces and logs
+ y) OPEN_TELEMETRY="$OPTARG" ;;
# Note: update usage info when the params changed
?) exit_with_usage_help ;;
esac
@@ -82,21 +87,24 @@ fi
GREMLIN_SERVER_CONF="gremlin-server.yaml"
if [[ $PRELOAD == "true" ]]; then
GREMLIN_SERVER_CONF="gremlin-server-preload.yaml"
- EXAMPLE_SCRPIT="example-preload.groovy"
+ EXAMPLE_SCRIPT="example-preload.groovy"
cp "${CONF}"/gremlin-server.yaml "${CONF}/${GREMLIN_SERVER_CONF}"
- cp "${SCRIPTS}"/example.groovy "${SCRIPTS}/${EXAMPLE_SCRPIT}"
- sed -i -e "s/empty-sample.groovy/$EXAMPLE_SCRPIT/g"
"${CONF}/${GREMLIN_SERVER_CONF}"
- sed -i -e '/registerRocksDB/d; /serverStarted/d'
"${SCRIPTS}/${EXAMPLE_SCRPIT}"
+ cp "${SCRIPTS}"/example.groovy "${SCRIPTS}/${EXAMPLE_SCRIPT}"
+ sed -i -e "s/empty-sample.groovy/$EXAMPLE_SCRIPT/g"
"${CONF}/${GREMLIN_SERVER_CONF}"
+ sed -i -e '/registerRocksDB/d; /serverStarted/d'
"${SCRIPTS}/${EXAMPLE_SCRIPT}"
fi
+# TODO: show the output message in hugegraph-server.sh when start the server
if [[ $DAEMON == "true" ]]; then
echo "Starting HugeGraphServer in daemon mode..."
"${BIN}"/hugegraph-server.sh "${CONF}/${GREMLIN_SERVER_CONF}"
"${CONF}"/rest-server.properties \
- "${OPEN_SECURITY_CHECK}" "${USER_OPTION}" "${GC_OPTION}"
>>"${LOGS}"/hugegraph-server.log 2>&1 &
+ "${OPEN_SECURITY_CHECK}" "${USER_OPTION}" "${GC_OPTION}"
"${OPEN_TELEMETRY}" \
+ >>"${LOGS}"/hugegraph-server.log 2>&1 &
else
echo "Starting HugeGraphServer in foreground mode..."
"${BIN}"/hugegraph-server.sh "${CONF}/${GREMLIN_SERVER_CONF}"
"${CONF}"/rest-server.properties \
- "${OPEN_SECURITY_CHECK}" "${USER_OPTION}" "${GC_OPTION}"
>>"${LOGS}"/hugegraph-server.log 2>&1
+ "${OPEN_SECURITY_CHECK}" "${USER_OPTION}" "${GC_OPTION}"
"${OPEN_TELEMETRY}" \
+ >>"${LOGS}"/hugegraph-server.log 2>&1
fi
PID="$!"
diff --git a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/util.sh
b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/util.sh
index 70baed7ca..11979b648 100755
--- a/hugegraph-server/hugegraph-dist/src/assembly/static/bin/util.sh
+++ b/hugegraph-server/hugegraph-dist/src/assembly/static/bin/util.sh
@@ -15,6 +15,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
+
function command_available() {
local cmd=$1
if [[ -x "$(command -v "$cmd")" ]]; then
@@ -385,6 +386,6 @@ function kill_process_and_wait() {
}
function exit_with_usage_help(){
- echo "USAGE: $0 [-d true|false] [-g g1] [-m true|false] [-p true|false]
[-s true|false] [-j java_options] [-t timeout]"
+ echo "USAGE: $0 [-d true|false] [-g g1] [-m true|false] [-p true|false]
[-s true|false] [-j java_options] [-t timeout] [-y true|false]"
exit 1
}
diff --git
a/hugegraph-server/hugegraph-dist/src/assembly/travis/start-server.sh
b/hugegraph-server/hugegraph-dist/src/assembly/travis/start-server.sh
index 3e86ffc72..b6ce9d12c 100755
--- a/hugegraph-server/hugegraph-dist/src/assembly/travis/start-server.sh
+++ b/hugegraph-server/hugegraph-dist/src/assembly/travis/start-server.sh
@@ -48,7 +48,7 @@ SERIALIZER=${backend_serializer_map[$BACKEND]}
sed -i "s/backend=.*/backend=$BACKEND/" $CONF
sed -i "s/serializer=.*/serializer=$SERIALIZER/" $CONF
-# Set PostgreSQL configurations if needed
+# Set PostgresSQL configurations if needed
if [ "$BACKEND" == "postgresql" ]; then
sed -i '/org.postgresql.Driver/,+2 s/\#//g' $CONF
fi
@@ -71,4 +71,5 @@ if [ -n "$JACOCO_PORT" ]; then
JACOCO_OPTION="-javaagent:${JACOCO_JAR}=includes=*,port=${JACOCO_PORT},destfile=jacoco-it.exec,output=tcpserver"
fi
-echo -e "pa" | $BIN/init-store.sh && $BIN/start-hugegraph.sh -j
"$JACOCO_OPTION" -t 60 -v
+echo -e "pa" | $BIN/init-store.sh
+$BIN/start-hugegraph.sh -j "$JACOCO_OPTION" -t 60