diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md deleted file mode 100644 index 5afa96c6..00000000 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: "BUG Report" -about: Submitting problem defects helps us to improve ---- - -## BUG Report - -Before you start reporting errors, make sure you carefully review the following steps: - -- Search for open and closed [GitHub ISSUE](https://github.com/opengoofy/hippo4j/issues) -- Read [Frequently asked questions](https://hippo4j.cn/community/faq) - -Please answer these questions before submitting them. Thank you. - -### Which Project did you use? Hippo4j config or Hippo4j server? - -### Which version did you use? - -### Expected behavior - -### Actual behavior - -### Cause analysis (if possible) - -### Problem recurrence steps - -### Sample code to reproduce the problem (for example, the GitHub Link) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..adcd03ef --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,112 @@ +# +# 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. +# + +name: Bug report +title: "[Bug] Bug title " +description: If something isn't working as expected. +labels: [ "type: bug" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: dropdown + attributes: + label: Environment + description: Describe the environment. + options: + - Mac + - Windows + - Linux + - Other + validations: + required: true + + - type: dropdown + attributes: + label: Hippo4j version + description: Describe the Hippo4j version. + options: + - develop + - 1.5.0 + - 1.4.3 + - Other + validations: + required: true + + - type: textarea + attributes: + label: What happened + description: Describe what happened. + placeholder: > + A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + attributes: + label: How to reproduce + description: > + Describe the steps to reproduce the bug here. + placeholder: > + Please make sure you provide a reproducible step-by-step case of how to reproduce the problem + as minimally and precisely as possible. + validations: + required: true + + - type: textarea + attributes: + label: Debug logs + description: Anything else we need to know? + placeholder: > + Add your debug logs here. + validations: + required: false + + - type: checkboxes + attributes: + label: Are you willing to submit PR? + description: > + This is absolutely not required, but we are happy to guide you in the contribution process + especially if you already have a good understanding of how to implement the fix. + options: + - label: Yes I am willing to submit a PR! + + - type: checkboxes + attributes: + label: Code of Conduct + description: > + The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.. + options: + - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) * + + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/documentation_related.yml b/.github/ISSUE_TEMPLATE/documentation_related.yml new file mode 100644 index 00000000..6a6cc0ef --- /dev/null +++ b/.github/ISSUE_TEMPLATE/documentation_related.yml @@ -0,0 +1,68 @@ +# +# 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. +# + +name: Documentation Related +title: "[Doc] Documentation Related " +description: I find some issues related to the documentation. +labels: [ "type: documentation" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: textarea + attributes: + label: Documentation Related + description: Describe the suggestion about document. + placeholder: > + e.g There is a typo + validations: + required: true + + - type: checkboxes + attributes: + label: Are you willing to submit PR? + description: > + This is absolutely not required, but we are happy to guide you in the contribution process + especially if you already have a good understanding of how to implement the fix. + options: + - label: Yes I am willing to submit a PR! + + - type: checkboxes + attributes: + label: Code of Conduct + description: > + The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.. + options: + - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) * + + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/enhancement_request.yml b/.github/ISSUE_TEMPLATE/enhancement_request.yml new file mode 100644 index 00000000..f0cb833d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/enhancement_request.yml @@ -0,0 +1,77 @@ +# +# 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. +# + +name: Enhancement Request +title: "[Enhancement] Enhancement title" +description: I want to suggest an enhancement for this project +labels: [ "type: enhancement" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: textarea + attributes: + label: Enhancement Request + description: Describe the suggestion. + placeholder: > + First of all: Have you checked the docs https://hippo4j.cn/community/dev_convention/code, + or GitHub issues whether someone else has already reported your issue? + validations: + required: true + + - type: textarea + attributes: + label: Describe the solution you'd like + description: Describe the suggestion. + placeholder: > + A clear and concise description of what you want to happen. Add any considered drawbacks. + validations: + required: true + + - type: checkboxes + attributes: + label: Are you willing to submit PR? + description: > + This is absolutely not required, but we are happy to guide you in the contribution process + especially if you already have a good understanding of how to implement the fix. + options: + - label: Yes I am willing to submit a PR! + + - type: checkboxes + attributes: + label: Code of Conduct + description: > + The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.. + options: + - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) * + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md deleted file mode 100644 index 502f8b3a..00000000 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -name: "Demand advice" -about: Propose ideas and suggestions for this project ---- - -## Demand advice - -Please answer these questions before submitting them. Thank you. - -### Is your function request related to the problem? - -### Describe the function you want diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..9c2812f4 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,70 @@ +# +# 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. +# + +name: Feature Request +title: "[Feature] Feature title " +description: I want to suggest a feature for this project. +labels: [ "type: feature" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: textarea + attributes: + label: Feature Request + description: Describe the feature. + placeholder: > + First of all: Have you checked the docs https://hippo4j.cn/community/dev_convention/code, + or GitHub issues whether someone else has already reported your issue? + Maybe the feature already exists? + validations: + required: true + + - type: checkboxes + attributes: + label: Are you willing to submit PR? + description: > + This is absolutely not required, but we are happy to guide you in the contribution process + especially if you already have a good understanding of how to implement the fix. + options: + - label: Yes I am willing to submit a PR! + + - type: checkboxes + attributes: + label: Code of Conduct + description: > + The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it.. + options: + - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) * + + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/question-report.md b/.github/ISSUE_TEMPLATE/question-report.md deleted file mode 100644 index 7b9bc26f..00000000 --- a/.github/ISSUE_TEMPLATE/question-report.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -name: "Question" -about: Use questions that were not answered in the documentation or discussion ---- - -## Question - -Before you begin to report problems, make sure you carefully review the following steps: - -- Searches for open and closed [GitHub ISSUE](https://github.com/opengoofy/hippo4j/issues) -- Read [Frequently asked questions](https://hippo4j.cn/community/faq) - -Please answer these questions before submitting them. Thank you. - -### Which Project did you use? Hippo4j config or Hippo4j server? - -### Which version did you use? - -### Expected behavior - -### Actual behavior - -### Cause analysis (if possible) - -### Problem recurrence steps - -### Sample code to reproduce the problem (for example, the GitHub Link) diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml new file mode 100644 index 00000000..638dbbd7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/question.yml @@ -0,0 +1,51 @@ +# +# 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. +# + +name: Question +title: "[Question] Question title " +description: I have a question that isn't answered in docs or issue. +labels: [ "type: question" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: textarea + attributes: + label: Question + description: Describe your question. + placeholder: > + Describe your question here :D + validations: + required: true + + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.github/ISSUE_TEMPLATE/unit_test.yml b/.github/ISSUE_TEMPLATE/unit_test.yml new file mode 100644 index 00000000..3974c9db --- /dev/null +++ b/.github/ISSUE_TEMPLATE/unit_test.yml @@ -0,0 +1,86 @@ +# +# 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. +# + +name: Unit Test +title: "[Unit Test] Unit test title" +description: I want to do some unit tests for this project +labels: [ "type: testing" ] +body: + - type: markdown + attributes: + value: | + For better global communication, Please write in English. + + - type: checkboxes + attributes: + label: Search before asking + description: > + Please make sure to search in the [issues](https://github.com/opengoofy/hippo4j/issues) + first to see whether the same issue was reported already. + options: + - label: > + I had searched in the [issues](https://github.com/opengoofy/hippo4j/issues) and found + no similar issues. + required: true + + - type: checkboxes + attributes: + label: Read the unit testing guidelines + description: > + Read the [develop guidelines](https://hippo4j.cn/community/dev_convention/code) before writing unit test code. + options: + - label: > + I have read. + required: true + + - type: textarea + attributes: + label: Unit test request + description: Describe the unit test. + placeholder: > + First of all: Have you checked the docs https://hippo4j.cn/community/category/贡献规约, + or GitHub issues whether someone else has already reported your issue? + Maybe the unit tests you want to do have already been done? + validations: + required: true + + - type: textarea + attributes: + label: Describe the unit tests you want to do + description: Describe the unit test. + value: | + Module name: + Located at: + Task status: ×(unfinished) / √(finished) + | Task Status | Class | Type | + | :------: | :------ | :------ | + | × | xxxxxx | xxxxxx | + validations: + required: true + + - type: checkboxes + attributes: + label: Are you willing to submit PR? + description: > + This is absolutely not required, but we are happy to guide you in the contribution process + especially if you already have a good understanding of how to implement the fix. + options: + - label: Yes I am willing to submit a PR! + + - type: markdown + attributes: + value: "Thanks for completing our form!" diff --git a/.gitignore b/.gitignore index 86147440..0a0f4f76 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,7 @@ build/ !**/src/test/**/build/ ### VS Code ### -.vscode/ +# .vscode/ # maven plugin ignore *.gpg diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..b2672c82 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,35 @@ +{ + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true + }, + "[html]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "[javascriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnSave": true + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.formatOnPaste": true, + "editor.formatOnSave": true + }, + "typescript.tsdk":"./node_modules/typescript/lib" + } + \ No newline at end of file diff --git a/agent/config/agent.config b/agent/config/agent.config index d810e55e..c49ce54f 100755 --- a/agent/config/agent.config +++ b/agent/config/agent.config @@ -17,36 +17,22 @@ # The service name in UI # ${service name} = [${group name}::]${logic name} # The group name is optional only. -agent.service_name=${SW_AGENT_NAME:Your_ApplicationName} +agent.service_name=${HIPPO4J_AGENT_NAME:Your_ApplicationName} # The agent namespace -agent.namespace=${SW_AGENT_NAMESPACE:} +agent.namespace=${HIPPO4J_AGENT_NAMESPACE:} # The agent cluster -agent.cluster=${SW_AGENT_CLUSTER:} - -# The number of sampled traces per 3 seconds -# Negative or zero means off, by default -agent.sample_n_per_3_secs=${SW_AGENT_SAMPLE:-1} - -# Authentication active is based on backend setting, see application.yml for more details. -agent.authentication=${SW_AGENT_AUTHENTICATION:} - -# The max number of TraceSegmentRef in a single span to keep memory cost estimatable. -agent.trace_segment_ref_limit_per_span=${SW_TRACE_SEGMENT_LIMIT:500} - -# The max amount of spans in a single segment. -# Through this config item, SkyWalking keep your application memory cost estimated. -agent.span_limit_per_segment=${SW_AGENT_SPAN_LIMIT:300} +agent.cluster=${HIPPO4J_AGENT_CLUSTER:} # If the operation name of the first span is included in this set, this segment should be ignored. Multiple values should be separated by `,`. -agent.ignore_suffix=${SW_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg} +agent.ignore_suffix=${HIPPO4J_AGENT_IGNORE_SUFFIX:.jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg} -# If true, SkyWalking agent will save all instrumented classes files in `/debugging` folder. +# If true, Hippo4j agent will save all instrumented classes files in `/debugging` folder. # SkyWalking team may ask for these files in order to resolve compatible problem. agent.is_open_debugging_class=${SW_AGENT_OPEN_DEBUG:false} -# If true, SkyWalking agent will cache all instrumented classes files to memory or disk files (decided by class cache mode), +# If true, Hippo4j agent will cache all instrumented classes files to memory or disk files (decided by class cache mode), # allow other javaagent to enhance those classes that enhanced by SkyWalking agent. agent.is_cache_enhanced_class=${SW_AGENT_CACHE_CLASS:false} @@ -55,71 +41,18 @@ agent.is_cache_enhanced_class=${SW_AGENT_CACHE_CLASS:false} # FILE: cache class bytes in `/class-cache` folder, automatically clean up cached class files when the application exits agent.class_cache_mode=${SW_AGENT_CLASS_CACHE_MODE:MEMORY} -# Instance name is the identity of an instance, should be unique in the service. If empty, SkyWalking agent will -# generate an 32-bit uuid. BY Default, SkyWalking uses UUID@hostname as the instance name. Max length is 50(UTF-8 char) -agent.instance_name=${SW_AGENT_INSTANCE_NAME:} - -# service instance properties in json format. e.g. agent.instance_properties_json = {"org": "apache-skywalking"} -agent.instance_properties_json=${SW_INSTANCE_PROPERTIES_JSON:} - -# How depth the agent goes, when log all cause exceptions. -agent.cause_exception_depth=${SW_AGENT_CAUSE_EXCEPTION_DEPTH:5} - -# Force reconnection period of grpc, based on grpc_channel_check_interval. -agent.force_reconnection_period=${SW_AGENT_FORCE_RECONNECTION_PERIOD:1} - -# The operationName max length -# Notice, in the current practice, we don't recommend the length over 190. -agent.operation_name_threshold=${SW_AGENT_OPERATION_NAME_THRESHOLD:150} - -# Keep tracing even the backend is not available if this value is true. -agent.keep_tracing=${SW_AGENT_KEEP_TRACING:false} - -# The agent use gRPC plain text in default. -# If true, SkyWalking agent uses TLS even no CA file detected. -agent.force_tls=${SW_AGENT_FORCE_TLS:false} - -# gRPC SSL trusted ca file. -agent.ssl_trusted_ca_path=${SW_AGENT_SSL_TRUSTED_CA_PATH:/ca/ca.crt} - -# enable mTLS when ssl_key_path and ssl_cert_chain_path exist. -agent.ssl_key_path=${SW_AGENT_SSL_KEY_PATH:} - -agent.ssl_cert_chain_path=${SW_AGENT_SSL_CERT_CHAIN_PATH:} - -# Limit the length of the ipv4 list size. -osinfo.ipv4_list_size=${SW_AGENT_OSINFO_IPV4_LIST_SIZE:10} - -# grpc channel status check interval. -collector.grpc_channel_check_interval=${SW_AGENT_COLLECTOR_GRPC_CHANNEL_CHECK_INTERVAL:30} -# Agent heartbeat report period. Unit, second. -collector.heartbeat_period=${SW_AGENT_COLLECTOR_HEARTBEAT_PERIOD:30} -# The agent sends the instance properties to the backend every -# collector.heartbeat_period * collector.properties_report_period_factor seconds -collector.properties_report_period_factor=${SW_AGENT_COLLECTOR_PROPERTIES_REPORT_PERIOD_FACTOR:10} -# Backend service addresses. -collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800} -# How long grpc client will timeout in sending data to upstream. Unit is second. -collector.grpc_upstream_timeout=${SW_AGENT_COLLECTOR_GRPC_UPSTREAM_TIMEOUT:30} -# Sniffer get profile task list interval. -collector.get_profile_task_interval=${SW_AGENT_COLLECTOR_GET_PROFILE_TASK_INTERVAL:20} -# Sniffer get agent dynamic config interval. -collector.get_agent_dynamic_config_interval=${SW_AGENT_COLLECTOR_GET_AGENT_DYNAMIC_CONFIG_INTERVAL:20} -# If true, skywalking agent will enable periodically resolving DNS to update receiver service addresses. -collector.is_resolve_dns_periodically=${SW_AGENT_COLLECTOR_IS_RESOLVE_DNS_PERIODICALLY:false} - # Logging level -logging.level=${SW_LOGGING_LEVEL:INFO} +logging.level=${HIPPO4J_LOGGING_LEVEL:INFO} # Logging file_name -logging.file_name=${SW_LOGGING_FILE_NAME:hippo4j-api.log} +logging.file_name=${HIPPO4J_LOGGING_FILE_NAME:hippo4j-api.log} # Log output. Default is FILE. Use CONSOLE means output to stdout. logging.output=${SW_LOGGING_OUTPUT:FILE} # Log files directory. Default is blank string, meaning use "{theHippo4jAgentJarDir}/logs " to output logs. # {theHippo4jAgentJarDir} is the directory where the hippo4j agent jar file is located -logging.dir=${SW_LOGGING_DIR:} +logging.dir=${HIPPO4J_LOGGING_DIR:} # Logger resolver: PATTERN or JSON. The default is PATTERN, which uses logging.pattern to print traditional text logs. # JSON resolver prints logs in JSON format. -logging.resolver=${SW_LOGGING_RESOLVER:PATTERN} +logging.resolver=${HIPPO4J_LOGGING_RESOLVER:PATTERN} # Logging format. There are all conversion specifiers: # * %level means log level. # * %timestamp means now of time with format yyyy-MM-dd HH:mm:ss:SSS. @@ -128,147 +61,16 @@ logging.resolver=${SW_LOGGING_RESOLVER:PATTERN} # * %class means SimpleName of TargetClass. # * %throwable means a throwable which user called. # * %agent_name means agent.service_name. Only apply to the PatternLogger. -logging.pattern=${SW_LOGGING_PATTERN:%level %timestamp %thread %class : %msg %throwable} +logging.pattern=${HIPPO4J_LOGGING_PATTERN:%level %timestamp %thread %class : %msg %throwable} # Logging max_file_size, default: 300 * 1024 * 1024 = 314572800 -logging.max_file_size=${SW_LOGGING_MAX_FILE_SIZE:314572800} +logging.max_file_size=${HIPPO4J_LOGGING_MAX_FILE_SIZE:314572800} # The max history log files. When rollover happened, if log files exceed this number, # then the oldest file will be delete. Negative or zero means off, by default. -logging.max_history_files=${SW_LOGGING_MAX_HISTORY_FILES:-1} - -# Listed exceptions would not be treated as an error. Because in some codes, the exception is being used as a way of controlling business flow. -# Besides, the annotation named IgnoredException in the trace toolkit is another way to configure ignored exceptions. -statuscheck.ignored_exceptions=${SW_STATUSCHECK_IGNORED_EXCEPTIONS:} -# The max recursive depth when checking the exception traced by the agent. Typically, we don't recommend setting this more than 10, which could cause a performance issue. Negative value and 0 would be ignored, which means all exceptions would make the span tagged in error status. -statuscheck.max_recursive_depth=${SW_STATUSCHECK_MAX_RECURSIVE_DEPTH:1} - -# Max element count in the correlation context -correlation.element_max_number=${SW_CORRELATION_ELEMENT_MAX_NUMBER:3} - -# Max value length of each element. -correlation.value_max_length=${SW_CORRELATION_VALUE_MAX_LENGTH:128} -# Tag the span by the key/value in the correlation context, when the keys listed here exist. -correlation.auto_tag_keys=${SW_CORRELATION_AUTO_TAG_KEYS:} -# The buffer size of collected JVM info. -jvm.buffer_size=${SW_JVM_BUFFER_SIZE:600} -# The buffer channel size. -buffer.channel_size=${SW_BUFFER_CHANNEL_SIZE:5} -# The buffer size. -buffer.buffer_size=${SW_BUFFER_BUFFER_SIZE:300} -# If true, skywalking agent will enable profile when user create a new profile task. Otherwise disable profile. -profile.active=${SW_AGENT_PROFILE_ACTIVE:true} -# Parallel monitor segment count -profile.max_parallel=${SW_AGENT_PROFILE_MAX_PARALLEL:5} -# Max monitor segment time(minutes), if current segment monitor time out of limit, then stop it. -profile.duration=${SW_AGENT_PROFILE_DURATION:10} -# Max dump thread stack depth -profile.dump_max_stack_depth=${SW_AGENT_PROFILE_DUMP_MAX_STACK_DEPTH:500} -# Snapshot transport to backend buffer size -profile.snapshot_transport_buffer_size=${SW_AGENT_PROFILE_SNAPSHOT_TRANSPORT_BUFFER_SIZE:4500} -# If true, the agent collects and reports metrics to the backend. -meter.active=${SW_METER_ACTIVE:true} -# Report meters interval. The unit is second -meter.report_interval=${SW_METER_REPORT_INTERVAL:20} -# Max size of the meter pool -meter.max_meter_size=${SW_METER_MAX_METER_SIZE:500} -# The max size of message to send to server.Default is 10 MB -log.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760} +logging.max_history_files=${HIPPO4J_LOGGING_MAX_HISTORY_FILES:-1} # Mount the specific folders of the plugins. Plugins in mounted folders would work. plugin.mount=${SW_MOUNT_FOLDERS:plugins,activations} # Peer maximum description limit. plugin.peer_max_length=${SW_PLUGIN_PEER_MAX_LENGTH:200} # Exclude some plugins define in plugins dir.Plugin names is defined in [Agent plugin list](Plugin-list.md) -plugin.exclude_plugins=${SW_EXCLUDE_PLUGINS:} -# If true, trace all the parameters in MongoDB access, default is false. Only trace the operation, not include parameters. -plugin.mongodb.trace_param=${SW_PLUGIN_MONGODB_TRACE_PARAM:false} -# If set to positive number, the `WriteRequest.params` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. -plugin.mongodb.filter_length_limit=${SW_PLUGIN_MONGODB_FILTER_LENGTH_LIMIT:256} -# If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false. -plugin.elasticsearch.trace_dsl=${SW_PLUGIN_ELASTICSEARCH_TRACE_DSL:false} -# If true, the fully qualified method name will be used as the endpoint name instead of the request URL, default is false. -plugin.springmvc.use_qualified_name_as_endpoint_name=${SW_PLUGIN_SPRINGMVC_USE_QUALIFIED_NAME_AS_ENDPOINT_NAME:false} -# If true, the fully qualified method name will be used as the operation name instead of the given operation name, default is false. -plugin.toolit.use_qualified_name_as_operation_name=${SW_PLUGIN_TOOLIT_USE_QUALIFIED_NAME_AS_OPERATION_NAME:false} -# If set to true, the parameters of the sql (typically `java.sql.PreparedStatement`) would be collected. -plugin.jdbc.trace_sql_parameters=${SW_JDBC_TRACE_SQL_PARAMETERS:false} -# If set to positive number, the `db.sql.parameters` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. -plugin.jdbc.sql_parameters_max_length=${SW_PLUGIN_JDBC_SQL_PARAMETERS_MAX_LENGTH:512} -# If set to positive number, the `db.statement` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. -plugin.jdbc.sql_body_max_length=${SW_PLUGIN_JDBC_SQL_BODY_MAX_LENGTH:2048} -# If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, default is false. -plugin.solrj.trace_statement=${SW_PLUGIN_SOLRJ_TRACE_STATEMENT:false} -# If true, trace all the operation parameters in Solr request, default is false. -plugin.solrj.trace_ops_params=${SW_PLUGIN_SOLRJ_TRACE_OPS_PARAMS:false} -# If true, trace all middleware/business handlers that are part of the Light4J handler chain for a request. -plugin.light4j.trace_handler_chain=${SW_PLUGIN_LIGHT4J_TRACE_HANDLER_CHAIN:false} -# If true, the transaction definition name will be simplified. -plugin.springtransaction.simplify_transaction_definition_name=${SW_PLUGIN_SPRINGTRANSACTION_SIMPLIFY_TRANSACTION_DEFINITION_NAME:false} -# Threading classes (`java.lang.Runnable` and `java.util.concurrent.Callable`) and their subclasses, including anonymous inner classes whose name match any one of the `THREADING_CLASS_PREFIXES` (splitted by `,`) will be instrumented, make sure to only specify as narrow prefixes as what you're expecting to instrument, (`java.` and `javax.` will be ignored due to safety issues) -plugin.jdkthreading.threading_class_prefixes=${SW_PLUGIN_JDKTHREADING_THREADING_CLASS_PREFIXES:} -# This config item controls that whether the Tomcat plugin should collect the parameters of the request. Also, activate implicitly in the profiled trace. -plugin.tomcat.collect_http_params=${SW_PLUGIN_TOMCAT_COLLECT_HTTP_PARAMS:false} -# This config item controls that whether the SpringMVC plugin should collect the parameters of the request, when your Spring application is based on Tomcat, consider only setting either `plugin.tomcat.collect_http_params` or `plugin.springmvc.collect_http_params`. Also, activate implicitly in the profiled trace. -plugin.springmvc.collect_http_params=${SW_PLUGIN_SPRINGMVC_COLLECT_HTTP_PARAMS:false} -# This config item controls that whether the HttpClient plugin should collect the parameters of the request -plugin.httpclient.collect_http_params=${SW_PLUGIN_HTTPCLIENT_COLLECT_HTTP_PARAMS:false} -# When `COLLECT_HTTP_PARAMS` is enabled, how many characters to keep and send to the OAP backend, use negative values to keep and send the complete parameters, NB. this config item is added for the sake of performance. -plugin.http.http_params_length_threshold=${SW_PLUGIN_HTTP_HTTP_PARAMS_LENGTH_THRESHOLD:1024} -# When `include_http_headers` declares header names, this threshold controls the length limitation of all header values. use negative values to keep and send the complete headers. Note. this config item is added for the sake of performance. -plugin.http.http_headers_length_threshold=${SW_PLUGIN_HTTP_HTTP_HEADERS_LENGTH_THRESHOLD:2048} -# Set the header names, which should be collected by the plugin. Header name must follow `javax.servlet.http` definition. Multiple names should be split by comma. -plugin.http.include_http_headers=${SW_PLUGIN_HTTP_INCLUDE_HTTP_HEADERS:} -# This config item controls that whether the Feign plugin should collect the http body of the request. -plugin.feign.collect_request_body=${SW_PLUGIN_FEIGN_COLLECT_REQUEST_BODY:false} -# When `COLLECT_REQUEST_BODY` is enabled, how many characters to keep and send to the OAP backend, use negative values to keep and send the complete body. -plugin.feign.filter_length_limit=${SW_PLUGIN_FEIGN_FILTER_LENGTH_LIMIT:1024} -# When `COLLECT_REQUEST_BODY` is enabled and content-type start with SUPPORTED_CONTENT_TYPES_PREFIX, collect the body of the request , multiple paths should be separated by `,` -plugin.feign.supported_content_types_prefix=${SW_PLUGIN_FEIGN_SUPPORTED_CONTENT_TYPES_PREFIX:application/json,text/} -# If true, trace all the influxql(query and write) in InfluxDB access, default is true. -plugin.influxdb.trace_influxql=${SW_PLUGIN_INFLUXDB_TRACE_INFLUXQL:true} -# Apache Dubbo consumer collect `arguments` in RPC call, use `Object#toString` to collect `arguments`. -plugin.dubbo.collect_consumer_arguments=${SW_PLUGIN_DUBBO_COLLECT_CONSUMER_ARGUMENTS:false} -# When `plugin.dubbo.collect_consumer_arguments` is `true`, Arguments of length from the front will to the OAP backend -plugin.dubbo.consumer_arguments_length_threshold=${SW_PLUGIN_DUBBO_CONSUMER_ARGUMENTS_LENGTH_THRESHOLD:256} -# Apache Dubbo provider collect `arguments` in RPC call, use `Object#toString` to collect `arguments`. -plugin.dubbo.collect_provider_arguments=${SW_PLUGIN_DUBBO_COLLECT_PROVIDER_ARGUMENTS:false} -# When `plugin.dubbo.collect_provider_arguments` is `true`, Arguments of length from the front will to the OAP backend -plugin.dubbo.provider_arguments_length_threshold=${SW_PLUGIN_DUBBO_PROVIDER_ARGUMENTS_LENGTH_THRESHOLD:256} -# A list of host/port pairs to use for establishing the initial connection to the Kafka cluster. -plugin.kafka.bootstrap_servers=${SW_KAFKA_BOOTSTRAP_SERVERS:localhost:9092} -# Timeout period of reading topics from the Kafka server, the unit is second. -plugin.kafka.get_topic_timeout=${SW_GET_TOPIC_TIMEOUT:10} -# Kafka producer configuration. Read [producer configure](http://kafka.apache.org/24/documentation.html#producerconfigs) -# to get more details. Check document for more details and examples. -plugin.kafka.producer_config=${sw_plugin_kafka_producer_config:} -# Configure Kafka Producer configuration in JSON format. Notice it will be overridden by plugin.kafka.producer_config[key], if the key duplication. -plugin.kafka.producer_config_json=${SW_PLUGIN_KAFKA_PRODUCER_CONFIG_JSON:} -# Specify which Kafka topic name for Meter System data to report to. -plugin.kafka.topic_meter=${SW_PLUGIN_KAFKA_TOPIC_METER:skywalking-meters} -# Specify which Kafka topic name for JVM metrics data to report to. -plugin.kafka.topic_metrics=${SW_PLUGIN_KAFKA_TOPIC_METRICS:skywalking-metrics} -# Specify which Kafka topic name for traces data to report to. -plugin.kafka.topic_segment=${SW_PLUGIN_KAFKA_TOPIC_SEGMENT:skywalking-segments} -# Specify which Kafka topic name for Thread Profiling snapshot to report to. -plugin.kafka.topic_profiling=${SW_PLUGIN_KAFKA_TOPIC_PROFILINGS:skywalking-profilings} -# Specify which Kafka topic name for the register or heartbeat data of Service Instance to report to. -plugin.kafka.topic_management=${SW_PLUGIN_KAFKA_TOPIC_MANAGEMENT:skywalking-managements} -# Specify which Kafka topic name for the logging data to report to. -plugin.kafka.topic_logging=${SW_PLUGIN_KAFKA_TOPIC_LOGGING:skywalking-logs} -# isolate multi OAP server when using same Kafka cluster (final topic name will append namespace before Kafka topics with `-` ). -plugin.kafka.namespace=${SW_KAFKA_NAMESPACE:} -# Match spring beans with regular expression for the class name. Multiple expressions could be separated by a comma. This only works when `Spring annotation plugin` has been activated. -plugin.springannotation.classname_match_regex=${SW_SPRINGANNOTATION_CLASSNAME_MATCH_REGEX:} -# Whether or not to transmit logged data as formatted or un-formatted. -plugin.toolkit.log.transmit_formatted=${SW_PLUGIN_TOOLKIT_LOG_TRANSMIT_FORMATTED:true} -# If set to true, the parameters of Redis commands would be collected by Lettuce agent. -plugin.lettuce.trace_redis_parameters=${SW_PLUGIN_LETTUCE_TRACE_REDIS_PARAMETERS:false} -# If set to positive number and `plugin.lettuce.trace_redis_parameters` is set to `true`, Redis command parameters would be collected and truncated to this length. -plugin.lettuce.redis_parameter_max_length=${SW_PLUGIN_LETTUCE_REDIS_PARAMETER_MAX_LENGTH:128} -# If set to true, the parameters of the cypher would be collected. -plugin.neo4j.trace_cypher_parameters=${SW_PLUGIN_NEO4J_TRACE_CYPHER_PARAMETERS:false} -# If set to positive number, the `db.cypher.parameters` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. -plugin.neo4j.cypher_parameters_max_length=${SW_PLUGIN_NEO4J_CYPHER_PARAMETERS_MAX_LENGTH:512} -# If set to positive number, the `db.statement` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem. -plugin.neo4j.cypher_body_max_length=${SW_PLUGIN_NEO4J_CYPHER_BODY_MAX_LENGTH:2048} -# If set to a positive number and activate `trace sampler CPU policy plugin`, the trace would not be collected when agent process CPU usage percent is greater than `plugin.cpupolicy.sample_cpu_usage_percent_limit`. -plugin.cpupolicy.sample_cpu_usage_percent_limit=${SW_SAMPLE_CPU_USAGE_PERCENT_LIMIT:-1} +plugin.exclude_plugins=${SW_EXCLUDE_PLUGINS:} \ No newline at end of file diff --git a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java index 04fc9251..89e1c577 100755 --- a/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java +++ b/agent/hippo4j-agent-core/src/main/java/cn/hippo4j/agent/core/conf/Config.java @@ -75,12 +75,6 @@ public class Config { @Length(20) public static String CLUSTER = ""; - /** - * Authentication active is based on backend setting, see application.yml for more details. For most scenarios, - * this needs backend extensions, only basic match auth provided in default implementation. - */ - public static String AUTHENTICATION = ""; - /** * If true, Hippo4j agent will save all instrumented classes files in `/debugging` folder. Hippo4j team * may ask for these files in order to resolve compatible problem. @@ -99,177 +93,6 @@ public class Config { * folder, automatically clean up cached class files when the application exits */ public static ClassCacheMode CLASS_CACHE_MODE = ClassCacheMode.MEMORY; - - /** - * The identifier of the instance - */ - @Length(50) - public volatile static String INSTANCE_NAME = ""; - - /** - * service instance properties in json format. e.g. agent.instance_properties_json = {"org": - * "cn.hippo4j"} - */ - public static String INSTANCE_PROPERTIES_JSON = ""; - - /** - * How depth the agent goes, when log cause exceptions. - */ - public static int CAUSE_EXCEPTION_DEPTH = 5; - - /** - * Force reconnection period of grpc, based on grpc_channel_check_interval. If count of check grpc channel - * status more than this number. The channel check will call channel.getState(true) to requestConnection. - */ - public static long FORCE_RECONNECTION_PERIOD = 1; - - /** - * Limit the length of the operationName to prevent the overlength issue in the storage. - * - *
NOTICE
- * In the current practice, we don't recommend the length over 190. - */ - public static int OPERATION_NAME_THRESHOLD = 150; - - /** - * Keep tracing even the backend is not available. - */ - public static boolean KEEP_TRACING = false; - - /** - * Force open TLS for gRPC channel if true. - */ - public static boolean FORCE_TLS = false; - - /** - * SSL trusted ca file. If it exists, will enable TLS for gRPC channel. - */ - public static String SSL_TRUSTED_CA_PATH = "ca" + Constants.PATH_SEPARATOR + "ca.crt"; - - /** - * Key cert chain file. If ssl_cert_chain and ssl_key exist, will enable mTLS for gRPC channel. - */ - public static String SSL_CERT_CHAIN_PATH; - - /** - * Private key file. If ssl_cert_chain and ssl_key exist, will enable mTLS for gRPC channel. - */ - public static String SSL_KEY_PATH; - } - - public static class OsInfo { - - /** - * Limit the length of the ipv4 list size. - */ - public static int IPV4_LIST_SIZE = 10; - } - - public static class Collector { - - /** - * grpc channel status check interval - */ - public static long GRPC_CHANNEL_CHECK_INTERVAL = 30; - /** - * The period in which the agent report a heartbeat to the backend. - */ - public static long HEARTBEAT_PERIOD = 30; - /** - * The agent sends the instance properties to the backend every `collector.heartbeat_period * - * collector.properties_report_period_factor` seconds - */ - public static int PROPERTIES_REPORT_PERIOD_FACTOR = 10; - /** - * Collector hippo4j trace receiver service addresses. - */ - public static String BACKEND_SERVICE = ""; - /** - * How long grpc client will timeout in sending data to upstream. - */ - public static int GRPC_UPSTREAM_TIMEOUT = 30; - /** - * Get profile task list interval - */ - public static int GET_PROFILE_TASK_INTERVAL = 20; - /** - * Get agent dynamic config interval - */ - public static int GET_AGENT_DYNAMIC_CONFIG_INTERVAL = 20; - /** - * If true, hippo4j agent will enable periodically resolving DNS to update receiver service addresses. - */ - public static boolean IS_RESOLVE_DNS_PERIODICALLY = false; - } - - public static class Profile { - - /** - * If true, hippo4j agent will enable profile when user create a new profile task. Otherwise disable - * profile. - */ - public static boolean ACTIVE = true; - - /** - * Parallel monitor segment count - */ - public static int MAX_PARALLEL = 5; - - /** - * Max monitor segment time(minutes), if current segment monitor time out of limit, then stop it. - */ - public static int MAX_DURATION = 10; - - /** - * Max dump thread stack depth - */ - public static int DUMP_MAX_STACK_DEPTH = 500; - - /** - * Snapshot transport to backend buffer size - */ - public static int SNAPSHOT_TRANSPORT_BUFFER_SIZE = 500; - } - - public static class Meter { - - /** - * If true, Hippo4j agent will enable sending meters. Otherwise disable meter report. - */ - public static boolean ACTIVE = true; - - /** - * Report meters interval - */ - public static Integer REPORT_INTERVAL = 20; - - /** - * Max size of the meter count. - */ - public static Integer MAX_METER_SIZE = 500; - } - - public static class Jvm { - - /** - * The buffer size of collected JVM info. - */ - public static int BUFFER_SIZE = 60 * 10; - } - - public static class Log { - - /** - * The max size of message to send to server.Default is 10 MB. - */ - public static int MAX_MESSAGE_SIZE = 10 * 1024 * 1024; - } - - public static class Buffer { - - public static int CHANNEL_SIZE = 5; - - public static int BUFFER_SIZE = 300; } public static class Logging { @@ -326,22 +149,6 @@ public class Config { public static String PATTERN = "%level %timestamp %thread %class : %msg %throwable"; } - public static class StatusCheck { - - /** - * Listed exceptions would not be treated as an error. Because in some codes, the exception is being used as a - * way of controlling business flow. - */ - public static String IGNORED_EXCEPTIONS = ""; - - /** - * The max recursive depth when checking the exception traced by the agent. Typically, we don't recommend - * setting this more than 10, which could cause a performance issue. Negative value and 0 would be ignored, - * which means all exceptions would make the span tagged in error status. - */ - public static Integer MAX_RECURSIVE_DEPTH = 1; - } - public static class Plugin { /** @@ -385,22 +192,4 @@ public class Config { } } } - - public static class Correlation { - - /** - * Max element count in the correlation context. - */ - public static int ELEMENT_MAX_NUMBER = 3; - - /** - * Max value length of each element. - */ - public static int VALUE_MAX_LENGTH = 128; - - /** - * Tag the span by the key/value in the correlation context, when the keys listed here exist. - */ - public static String AUTO_TAG_KEYS = ""; - } } diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 26890a2a..8f30476e 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -1,216 +1,227 @@ // @ts-check // Note: type annotations allow type checking and IDEs autocompletion -const lightCodeTheme = require('prism-react-renderer/themes/github'); -const darkCodeTheme = require('prism-react-renderer/themes/dracula'); +const lightCodeTheme = require("prism-react-renderer/themes/github"); +const darkCodeTheme = require("prism-react-renderer/themes/dracula"); /** @type {import('@docusaurus/types').Config} */ const config = { - title: 'Hippo4j', - tagline: '动态可观测线程池框架,为业务系统提高线上运行保障能力', - url: 'https://hippo4j.cn', - baseUrl: '/', - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', - favicon: 'img/hippo4j_favicon.ico', - // GitHub pages deployment config. - // If you aren't using GitHub pages, you don't need these. - organizationName: 'hippo4j', // Usually your GitHub org/user name. - projectName: 'hippo4j.github.io', // Usually your repo name. - deploymentBranch: 'main', + title: "Hippo4j", + tagline: "动态可观测线程池框架,为业务系统提高线上运行保障能力", + url: "https://hippo4j.cn", + baseUrl: "/", + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", + favicon: "img/hippo4j_favicon.ico", + // GitHub pages deployment config. + // If you aren't using GitHub pages, you don't need these. + organizationName: "hippo4j", // Usually your GitHub org/user name. + projectName: "hippo4j.github.io", // Usually your repo name. + deploymentBranch: "main", - // Even if you don't use internalization, you can use this field to set useful - // metadata like html lang. For example, if your site is Chinese, you may want - // to replace "en" with "zh-Hans". - i18n: { - defaultLocale: 'en', - locales: ['en', 'zh'], - localeConfigs: { - en: { - label: 'English', - direction: 'ltr', - }, - zh: { - label: '简体中文', - direction: 'ltr', - }, - }, + // Even if you don't use internalization, you can use this field to set useful + // metadata like html lang. For example, if your site is Chinese, you may want + // to replace "en" with "zh-Hans". + i18n: { + defaultLocale: "zh", + locales: ["en", "zh"], + localeConfigs: { + en: { + label: "English", + direction: "ltr", + }, + zh: { + label: "简体中文", + direction: "ltr", + }, }, + }, - presets: [ - [ - 'classic', - /** @type {import('@docusaurus/preset-classic').Options} */ - ({ - docs: { - sidebarPath: require.resolve('./sidebars.js'), - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - sidebarCollapsed: false, - /*editUrl: 'https://github.com/longtai-cn',*/ - }, - blog: { - showReadingTime: true, - // Please change this to your repo. - // Remove this to remove the "edit this page" links. - editUrl: - 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', - }, - theme: { - customCss: require.resolve('./src/css/custom.css'), - }, - }), - ], + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + sidebarPath: require.resolve("./sidebars.js"), + // Please change this to your repo. + // Remove this to remove the "edit this page" links. + sidebarCollapsed: false, + /*editUrl: 'https://github.com/longtai-cn',*/ + }, + blog: { + showReadingTime: true, + // Please change this to your repo. + // Remove this to remove the "edit this page" links. + editUrl: + "https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/", + }, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }), ], + ], - plugins: [ - [ - '@docusaurus/plugin-content-docs', - { - id: 'community', - path: 'community', - routeBasePath: 'community', - sidebarPath: require.resolve('./sidebarsCommunity.js'), - }, - ], + plugins: [ + [ + "@docusaurus/plugin-content-docs", + { + id: "community", + path: "community", + routeBasePath: "community", + sidebarPath: require.resolve("./sidebarsCommunity.js"), + }, ], + async function myPlugin(context, options) { + return { + name: "docusaurus-tailwindcss", + configurePostCss(postcssOptions) { + // Appends TailwindCSS and AutoPrefixer. + postcssOptions.plugins.push(require("tailwindcss")); + postcssOptions.plugins.push(require("autoprefixer")); + return postcssOptions; + }, + }; + }, + ], - themeConfig: + themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ - ({ - autoCollapseCategories: true, - announcementBar: { - id: 'announcementBar-1', // Increment on change - // content: `⭐️ If you like hippo4j, give it a star on Gitee, thanks.`, - // content: `⭐️ 如果您喜欢 hippo4j,请在 Gitee 和 GitHub 上给它一个 star,谢谢!`, - content: `⭐️ 开源不易,如果 Hippo4j 对您有帮助,请在 GitHub 上给它一个 Star 🌟`, - // content: `👉 《小马哥的代码实战课》官方知识星球来啦!!!`, - }, - navbar: { - title: '', - logo: { - alt: 'Hippo4j 动态可观测线程池框架', - src: 'img/hippo4j.png', - }, - items: [ - { - type: 'docSidebar', - docId: 'intro', - position: 'left', - sidebarId: 'user_docs', - label: '文档', - }, - { - to: '/community/contributor-guide', - label: '社区', - position: 'left', - activeBaseRegex: `/community/`, - }, - /*{ to: "/team", label: "团队", position: "left" },*/ - {to: '/users', label: '采用公司', position: 'left'}, - {to: '/group', label: '加群沟通', position: 'left'}, - /*{to: '/blog', label: '博客', position: 'left'},*/ - { - href: 'http://console.hippo4j.cn/index.html', - label: '控制台样例', - position: 'left', - }, - { - href: 'https://magestack.cn', - label: '🚀 拿个offer', - position: 'left', - }, - { - type: 'docsVersionDropdown', - position: 'right', - dropdownActiveClassDisabled: true, - }, + ({ + autoCollapseCategories: true, + announcementBar: { + id: "announcementBar-1", // Increment on change + // content: `⭐️ If you like hippo4j, give it a star on Gitee, thanks.`, + // content: `⭐️ 如果您喜欢 hippo4j,请在 Gitee 和 GitHub 上给它一个 star,谢谢!`, + content: `⭐️ 开源不易,如果 Hippo4j 对您有帮助,请在 GitHub 上给它一个 Star 🌟`, + // content: `👉 《小马哥的代码实战课》官方知识星球来啦!!!`, + }, + navbar: { + title: "", + logo: { + alt: "Hippo4j 动态可观测线程池框架", + src: "img/hippo4j.png", + }, + items: [ + { + type: "docSidebar", + docId: "intro", + position: "left", + sidebarId: "user_docs", + label: "文档", + }, + { + to: "/community/contributor-guide", + label: "社区", + position: "left", + activeBaseRegex: `/community/`, + }, + /*{ to: "/team", label: "团队", position: "left" },*/ + { to: "/users", label: "采用公司", position: "left" }, + { to: "/group", label: "加群沟通", position: "left" }, + /*{to: '/blog', label: '博客', position: 'left'},*/ + { + href: "http://console.hippo4j.cn/index.html", + label: "控制台样例", + position: "left", + }, + { + href: "https://magestack.cn", + label: "🚀 拿个offer", + position: "left", + }, + { + type: "docsVersionDropdown", + position: "right", + dropdownActiveClassDisabled: true, + }, - {type: 'localeDropdown', position: 'right'}, - /*{ + { type: "localeDropdown", position: "right" }, + /*{ href: 'https://gitee.com/mabaiwancn/hippo4j', label: 'Gitee', position: 'right', },*/ - { - href: 'https://github.com/opengoofy/hippo4j', - className: 'header-github-link', - 'aria-label': 'GitHub repository', - position: 'right', - }, + { + href: "https://github.com/opengoofy/hippo4j", + className: "header-github-link", + "aria-label": "GitHub repository", + position: "right", + }, - /*{ + /*{ href: 'https://github.com/opengoofy/hippo4j', label: 'GitHub', position: 'right', },*/ - ], - }, - footer: { - style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Intro', - to: '/docs/user_docs/intro', - }, - { - label: 'Config Mode', - to: '/docs/user_docs/getting_started/config/hippo4j-config-start', - }, - { - label: 'Server Mode', - to: '/docs/user_docs/getting_started/server/hippo4j-server-start', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Group', - href: 'https://hippo4j.cn/group', - }, - { - label: 'WeChat', - href: 'https://mp.weixin.qq.com/s/diVHYvwiuYH9aWpZDPc27g', - }, - ], - }, - { - title: 'More', - items: [ - { - label: 'Gitee', - href: 'https://gitee.com/opengoofy/hippo4j', - }, - { - label: 'GitHub', - href: 'https://github.com/opengoofy/hippo4j', - }, - ], - }, - { - title: 'Links', - items: [ - { - label: '推广合作', - href: 'https://hippo4j.cn/docs/user_docs/other/operation', - }, - ], - }, - ], - copyright: `Copyright © 2021-2023 马丁版权所有 京ICP备2021038095号 + ], + }, + footer: { + style: "dark", + links: [ + { + title: "Docs", + items: [ + { + label: "Intro", + to: "/docs/user_docs/intro", + }, + { + label: "Config Mode", + to: "/docs/user_docs/getting_started/config/hippo4j-config-start", + }, + { + label: "Server Mode", + to: "/docs/user_docs/getting_started/server/hippo4j-server-start", + }, + ], + }, + { + title: "Community", + items: [ + { + label: "Group", + href: "https://hippo4j.cn/group", + }, + { + label: "WeChat", + href: "https://mp.weixin.qq.com/s/diVHYvwiuYH9aWpZDPc27g", + }, + ], + }, + { + title: "More", + items: [ + { + label: "Gitee", + href: "https://gitee.com/opengoofy/hippo4j", + }, + { + label: "GitHub", + href: "https://github.com/opengoofy/hippo4j", + }, + ], + }, + { + title: "Links", + items: [ + { + label: "推广合作", + href: "https://hippo4j.cn/docs/user_docs/other/operation", + }, + ], + }, + ], + copyright: `Copyright © 2021-2023 马丁版权所有 京ICP备2021038095号 `, - }, - prism: { - theme: lightCodeTheme, - darkTheme: darkCodeTheme, - additionalLanguages: ['java'], - }, - }), + }, + prism: { + theme: lightCodeTheme, + darkTheme: darkCodeTheme, + additionalLanguages: ["java"], + }, + }), }; module.exports = config; diff --git a/docs/i18n/en/code.json b/docs/i18n/en/code.json new file mode 100644 index 00000000..d2da7eee --- /dev/null +++ b/docs/i18n/en/code.json @@ -0,0 +1,297 @@ +{ + "homepage.titleDescription1": { + "message": "Thread Pool Framework For Java", + "description": "The homepage title description" + }, + "homepage.titleDescription2": { + "message": "Enhancing the Operational Assurance Capability for Business Systems Online.", + "description": "The homepage title description" + }, + "homepage.startButton": { + "message": "Quick Start", + "description": "The homepage start button text" + }, + "homepage.secondTitle": { + "message": "What can Hippo4j do?", + "description": "a title for introduciton part" + }, + "homepage.introduction.fristPartTitle": { + "message": "Dynamic Change", + "description": "the title for the first introduction part" + }, + "homepage.introduction.fristPartDesc": { + "message": "Application runtime dynamically changes thread pool parameters, including but not limited to core size, maximum threads, blocking queue size, and rejection policy. It supports differentiated thread pool configurations for different nodes in the application cluster.", + "description": "the desc for the first introduction part" + }, + "homepage.introduction.secondPartTitle": { + "message": "Custom Alarm", + "description": "the title for the second introduction part" + }, + "homepage.introduction.secondPartDesc": { + "message": "Application thread pool runtime point, providing four alarm dimensions: thread pool overload, blocking queue capacity, running for too long, and rejection strategy alarm. It also supports non-repetitive alarms within a custom time period.", + "description": "the desc for the second introduction part" + }, + "homepage.introduction.thirdPartTitle": { + "message": "Operation Monitoring", + "description": "the title for the third introduction part" + }, + "homepage.introduction.thirdPartDesc": { + "message": "Supports custom duration thread pool for data collection and storage, while also supporting Prometheus, InfluxDB, and other monitoring systems. Provides visualized dashboard monitoring metrics through Grafana or built-in monitoring pages.", + "description": "the desc for the third introduction part" + }, + "theme.ErrorPageContent.title": { + "message": "This page crashed.", + "description": "The title of the fallback page when the page crashed" + }, + "theme.ErrorPageContent.tryAgain": { + "message": "Try again", + "description": "The label of the button to try again when the page crashed" + }, + "theme.NotFound.title": { + "message": "Page Not Found", + "description": "The title of the 404 page" + }, + "theme.NotFound.p1": { + "message": "We could not find what you were looking for.", + "description": "The first paragraph of the 404 page" + }, + "theme.NotFound.p2": { + "message": "Please contact the owner of the site that linked you to the original URL and let them know their link is broken.", + "description": "The 2nd paragraph of the 404 page" + }, + "theme.blog.archive.title": { + "message": "Archive", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "Archive", + "description": "The page & hero description of the blog archive page" + }, + "theme.blog.paginator.navAriaLabel": { + "message": "Blog list page navigation", + "description": "The ARIA label for the blog pagination" + }, + "theme.blog.paginator.newerEntries": { + "message": "Newer Entries", + "description": "The label used to navigate to the newer blog posts page (previous page)" + }, + "theme.blog.paginator.olderEntries": { + "message": "Older Entries", + "description": "The label used to navigate to the older blog posts page (next page)" + }, + "theme.admonition.note": { + "message": "note", + "description": "The default label used for the Note admonition (:::note)" + }, + "theme.admonition.tip": { + "message": "tip", + "description": "The default label used for the Tip admonition (:::tip)" + }, + "theme.admonition.danger": { + "message": "danger", + "description": "The default label used for the Danger admonition (:::danger)" + }, + "theme.admonition.info": { + "message": "info", + "description": "The default label used for the Info admonition (:::info)" + }, + "theme.admonition.caution": { + "message": "caution", + "description": "The default label used for the Caution admonition (:::caution)" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "Scroll back to top", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.post.paginator.navAriaLabel": { + "message": "Blog post page navigation", + "description": "The ARIA label for the blog posts pagination" + }, + "theme.blog.post.paginator.newerPost": { + "message": "Newer Post", + "description": "The blog post button label to navigate to the newer/previous post" + }, + "theme.blog.post.paginator.olderPost": { + "message": "Older Post", + "description": "The blog post button label to navigate to the older/next post" + }, + "theme.blog.post.plurals": { + "message": "One post|{count} posts", + "description": "Pluralized label for \"{count} posts\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.blog.tagTitle": { + "message": "{nPosts} tagged with \"{tagName}\"", + "description": "The title of the page for a blog tag" + }, + "theme.tags.tagsPageLink": { + "message": "View All Tags", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel": { + "message": "Switch between dark and light mode (currently {mode})", + "description": "The ARIA label for the navbar color mode toggle" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "dark mode", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "light mode", + "description": "The name for the light color mode" + }, + "theme.docs.breadcrumbs.home": { + "message": "Home page", + "description": "The ARIA label for the home page in the breadcrumbs" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "Breadcrumbs", + "description": "The ARIA label for the breadcrumbs" + }, + "theme.docs.DocCard.categoryDescription": { + "message": "{count} items", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "theme.docs.paginator.navAriaLabel": { + "message": "Docs pages navigation", + "description": "The ARIA label for the docs pagination" + }, + "theme.docs.paginator.previous": { + "message": "Previous", + "description": "The label used to navigate to the previous doc" + }, + "theme.docs.paginator.next": { + "message": "Next", + "description": "The label used to navigate to the next doc" + }, + "theme.docs.tagDocListPageTitle.nDocsTagged": { + "message": "One doc tagged|{count} docs tagged", + "description": "Pluralized label for \"{count} docs tagged\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.tagDocListPageTitle": { + "message": "{nDocsTagged} with \"{tagName}\"", + "description": "The title of the page for a docs tag" + }, + "theme.docs.versionBadge.label": { + "message": "Version: {versionLabel}" + }, + "theme.docs.versions.unreleasedVersionLabel": { + "message": "This is unreleased documentation for {siteTitle} {versionLabel} version.", + "description": "The label used to tell the user that he's browsing an unreleased doc version" + }, + "theme.docs.versions.unmaintainedVersionLabel": { + "message": "This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.", + "description": "The label used to tell the user that he's browsing an unmaintained doc version" + }, + "theme.docs.versions.latestVersionSuggestionLabel": { + "message": "For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).", + "description": "The label used to tell the user to check the latest version" + }, + "theme.docs.versions.latestVersionLinkLabel": { + "message": "latest version", + "description": "The label used for the latest version suggestion link label" + }, + "theme.common.editThisPage": { + "message": "Edit this page", + "description": "The link label to edit the current page" + }, + "theme.common.headingLinkTitle": { + "message": "Direct link to heading", + "description": "Title for link to heading" + }, + "theme.lastUpdated.atDate": { + "message": " on {date}", + "description": "The words used to describe on which date a page has been last updated" + }, + "theme.lastUpdated.byUser": { + "message": " by {user}", + "description": "The words used to describe by who the page has been last updated" + }, + "theme.lastUpdated.lastUpdatedAtBy": { + "message": "Last updated{atDate}{byUser}", + "description": "The sentence used to display when a page has been last updated, and by who" + }, + "theme.navbar.mobileVersionsDropdown.label": { + "message": "Versions", + "description": "The label for the navbar versions dropdown on mobile view" + }, + "theme.common.skipToMainContent": { + "message": "Skip to main content", + "description": "The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation" + }, + "theme.tags.tagsListLabel": { + "message": "Tags:", + "description": "The label alongside a tag list" + }, + "theme.AnnouncementBar.closeButtonAriaLabel": { + "message": "Close", + "description": "The ARIA label for close button of announcement bar" + }, + "theme.blog.sidebar.navAriaLabel": { + "message": "Blog recent posts navigation", + "description": "The ARIA label for recent posts in the blog sidebar" + }, + "theme.CodeBlock.copied": { + "message": "Copied", + "description": "The copied button label on code blocks" + }, + "theme.CodeBlock.copyButtonAriaLabel": { + "message": "Copy code to clipboard", + "description": "The ARIA label for copy code blocks button" + }, + "theme.CodeBlock.copy": { + "message": "Copy", + "description": "The copy button label on code blocks" + }, + "theme.CodeBlock.wordWrapToggle": { + "message": "Toggle word wrap", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel": { + "message": "Toggle the collapsible sidebar category '{label}'", + "description": "The ARIA label to toggle the collapsible sidebar category" + }, + "theme.navbar.mobileLanguageDropdown.label": { + "message": "Languages", + "description": "The label for the mobile language switcher dropdown" + }, + "theme.TOCCollapsible.toggleButtonLabel": { + "message": "On this page", + "description": "The label used by the button on the collapsible TOC component" + }, + "theme.blog.post.readMore": { + "message": "Read More", + "description": "The label used in blog post item excerpts to link to full blog posts" + }, + "theme.blog.post.readMoreLabel": { + "message": "Read more about {title}", + "description": "The ARIA label for the link to full blog posts from excerpts" + }, + "theme.blog.post.readingTime.plurals": { + "message": "One min read|{readingTime} min read", + "description": "Pluralized label for \"{readingTime} min read\". Use as much plural forms (separated by \"|\") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)" + }, + "theme.docs.sidebar.collapseButtonTitle": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.docs.sidebar.collapseButtonAriaLabel": { + "message": "Collapse sidebar", + "description": "The title attribute for collapse button of doc sidebar" + }, + "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": { + "message": "← Back to main menu", + "description": "The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)" + }, + "theme.docs.sidebar.expandButtonTitle": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.docs.sidebar.expandButtonAriaLabel": { + "message": "Expand sidebar", + "description": "The ARIA label and title attribute for expand button of doc sidebar" + }, + "theme.tags.tagsPageTitle": { + "message": "Tags", + "description": "The title of the tag list page" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-blog/options.json b/docs/i18n/en/docusaurus-plugin-content-blog/options.json new file mode 100644 index 00000000..9239ff70 --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-blog/options.json @@ -0,0 +1,14 @@ +{ + "title": { + "message": "Blog", + "description": "The title for the blog used in SEO" + }, + "description": { + "message": "Blog", + "description": "The description for the blog used in SEO" + }, + "sidebar.title": { + "message": "Recent posts", + "description": "The label for the left sidebar" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-docs-community/current.json b/docs/i18n/en/docusaurus-plugin-content-docs-community/current.json new file mode 100644 index 00000000..647c4069 --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-docs-community/current.json @@ -0,0 +1,10 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.community.category.贡献规约": { + "message": "贡献规约", + "description": "The label for category 贡献规约 in sidebar community" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/current.json b/docs/i18n/en/docusaurus-plugin-content-docs/current.json new file mode 100644 index 00000000..780bc3c9 --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "Next", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.2.json b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.2.json new file mode 100644 index 00000000..4393497b --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.2.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.4.2", + "description": "The label for version 1.4.2" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.3.json b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.3.json new file mode 100644 index 00000000..a395bb56 --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.4.3.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.4.3", + "description": "The label for version 1.4.3" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/en/docusaurus-plugin-content-docs/version-1.5.0.json b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.5.0.json new file mode 100644 index 00000000..13116144 --- /dev/null +++ b/docs/i18n/en/docusaurus-plugin-content-docs/version-1.5.0.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.5.0", + "description": "The label for version 1.5.0" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/en/docusaurus-theme-classic/footer.json b/docs/i18n/en/docusaurus-theme-classic/footer.json new file mode 100644 index 00000000..0c7f5bc1 --- /dev/null +++ b/docs/i18n/en/docusaurus-theme-classic/footer.json @@ -0,0 +1,54 @@ +{ + "link.title.Docs": { + "message": "Docs", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "Community", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "More", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.title.Links": { + "message": "Links", + "description": "The title of the footer links column with title=Links in the footer" + }, + "link.item.label.Intro": { + "message": "Intro", + "description": "The label of footer link with label=Intro linking to /docs/user_docs/intro" + }, + "link.item.label.Config Mode": { + "message": "Config Mode", + "description": "The label of footer link with label=Config Mode linking to /docs/user_docs/getting_started/config/hippo4j-config-start" + }, + "link.item.label.Server Mode": { + "message": "Server Mode", + "description": "The label of footer link with label=Server Mode linking to /docs/user_docs/getting_started/server/hippo4j-server-start" + }, + "link.item.label.Group": { + "message": "Group", + "description": "The label of footer link with label=Group linking to https://hippo4j.cn/group" + }, + "link.item.label.WeChat": { + "message": "WeChat", + "description": "The label of footer link with label=WeChat linking to https://mp.weixin.qq.com/s/diVHYvwiuYH9aWpZDPc27g" + }, + "link.item.label.Gitee": { + "message": "Gitee", + "description": "The label of footer link with label=Gitee linking to https://gitee.com/opengoofy/hippo4j" + }, + "link.item.label.GitHub": { + "message": "GitHub", + "description": "The label of footer link with label=GitHub linking to https://github.com/opengoofy/hippo4j" + }, + "link.item.label.推广合作": { + "message": "推广合作", + "description": "The label of footer link with label=推广合作 linking to https://hippo4j.cn/docs/user_docs/other/operation" + }, + "copyright": { + "message": "Copyright © 2021-2023 马丁版权所有 京ICP备2021038095号\n", + "description": "The footer copyright" + } +} diff --git a/docs/i18n/en/docusaurus-theme-classic/navbar.json b/docs/i18n/en/docusaurus-theme-classic/navbar.json new file mode 100644 index 00000000..d746aabf --- /dev/null +++ b/docs/i18n/en/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "item.label.文档": { + "message": "Docs", + "description": "Navbar item with label 文档" + }, + "item.label.社区": { + "message": "Community", + "description": "Navbar item with label 社区" + }, + "item.label.采用公司": { + "message": "Users", + "description": "Navbar item with label 采用公司" + }, + "item.label.加群沟通": { + "message": "Communication", + "description": "Navbar item with label 加群沟通" + }, + "item.label.控制台样例": { + "message": "Example", + "description": "Navbar item with label 控制台样例" + }, + "item.label.🚀 拿个offer": { + "message": "🚀 GetOffer", + "description": "Navbar item with label 🚀 拿个offer" + } +} diff --git a/docs/i18n/zh/code.json b/docs/i18n/zh/code.json index e037b95c..8dec86f4 100644 --- a/docs/i18n/zh/code.json +++ b/docs/i18n/zh/code.json @@ -256,5 +256,61 @@ }, "Community": { "message": "社区" + }, + "homepage.titleDescription1": { + "message": "Java线程池框架", + "description": "The homepage title description" + }, + "homepage.titleDescription2": { + "message": "动态可观测线程池框架,为业务系统提高线上运行保障能力。", + "description": "The homepage title description" + }, + "homepage.startButton": { + "message": "快速开始", + "description": "The homepage start button text" + }, + "homepage.secondTitle": { + "message": "Hippo4j能做什么?", + "description": "a title for introduciton part" + }, + "homepage.introduction.fristPartTitle": { + "message": "动态变更", + "description": "the title for the first introduction part" + }, + "homepage.introduction.fristPartDesc": { + "message": "应用运行时动态变更线程池参数,包括不限于核心、最大线程、阻塞队列大小和拒绝策略等,支持应用集群下不同节点线程池配置差异化", + "description": "the desc for the first introduction part" + }, + "homepage.introduction.secondPartTitle": { + "message": "自定义报警", + "description": "the title for the second introduction part" + }, + "homepage.introduction.secondPartDesc": { + "message": "应用线程池运行时埋点,提供四种报警维度,线程池过载、阻塞队列容量、运行超长以及拒绝策略报警,并支持自定义时间内不重复报警", + "description": "the desc for the second introduction part" + }, + "homepage.introduction.thirdPartTitle": { + "message": "运行监控", + "description": "the title for the third introduction part" + }, + "homepage.introduction.thirdPartDesc": { + "message": "支持自定义时长线程池运行数据采集存储,同时也支持 Prometheus、InfluxDB 等采集监控,通过 Grafana 或内置监控页面提供可视化大屏监控运行指标", + "description": "the desc for the third introduction part" + }, + "companyPage.title": { + "message": "谁在使用 Hippo4j ?", + "description": "the title for the company page" + }, + "companyPage.descriptionText": { + "message": "非常感谢大家对 Hippo4j 的关注和支持,这是我们前进最大的动力。", + "description": "the description for the company page" + }, + "companyPage.questionText": { + "message": "正在使用Hippo4j ?", + "description": "the text for the company question" + }, + "companyPage.linkText": { + "message": "点击进行登记", + "description": "the text for the company page link" } } diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.2.json b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.2.json new file mode 100644 index 00000000..4393497b --- /dev/null +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.2.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.4.2", + "description": "The label for version 1.4.2" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.3.json b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.3.json new file mode 100644 index 00000000..a395bb56 --- /dev/null +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.4.3.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.4.3", + "description": "The label for version 1.4.3" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.5.0.json b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.5.0.json new file mode 100644 index 00000000..13116144 --- /dev/null +++ b/docs/i18n/zh/docusaurus-plugin-content-docs/version-1.5.0.json @@ -0,0 +1,82 @@ +{ + "version.label": { + "message": "1.5.0", + "description": "The label for version 1.5.0" + }, + "sidebar.tutorialSidebar.category.user_docs": { + "message": "user_docs", + "description": "The label for category user_docs in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar tutorialSidebar" + }, + "sidebar.tutorialSidebar.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar tutorialSidebar" + }, + "sidebar.user_docs.category.用户指南": { + "message": "用户指南", + "description": "The label for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.用户指南.link.generated-index.description": { + "message": "帮助想要了解 Hippo4j 的用户快速掌握核心开发理念。", + "description": "The generated-index page description for category 用户指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.快速开始": { + "message": "快速开始", + "description": "The label for category 快速开始 in sidebar user_docs" + }, + "sidebar.user_docs.category.依赖配置中心": { + "message": "依赖配置中心", + "description": "The label for category 依赖配置中心 in sidebar user_docs" + }, + "sidebar.user_docs.category.无中间件依赖": { + "message": "无中间件依赖", + "description": "The label for category 无中间件依赖 in sidebar user_docs" + }, + "sidebar.user_docs.category.运维指南": { + "message": "运维指南", + "description": "The label for category 运维指南 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册": { + "message": "开发者手册", + "description": "The label for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.开发者手册.link.generated-index.description": { + "message": "Hippo4j 留给使用者能够扩展的知识点。", + "description": "The generated-index page description for category 开发者手册 in sidebar user_docs" + }, + "sidebar.user_docs.category.其它": { + "message": "其它", + "description": "The label for category 其它 in sidebar user_docs" + } +} diff --git a/docs/i18n/zh/docusaurus-plugin-content-pages/group.md b/docs/i18n/zh/docusaurus-plugin-content-pages/group.md deleted file mode 100644 index cc1bd9e0..00000000 --- a/docs/i18n/zh/docusaurus-plugin-content-pages/group.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -sidebar_position: 1 -title: 加群沟通 ---- - -## 关注公众号 - -如果大家想要实时关注 Hippo4j 更新的文章以及分享的干货的话,可以关注我的公众号。 - - - -## 加群沟通 - -使用过程中有任何问题,或者对项目有什么建议,关注公众号回复:加群,和 1000+ 志同道合的朋友交流讨论。 - - diff --git a/docs/i18n/zh/docusaurus-plugin-content-pages/markdown-page.md b/docs/i18n/zh/docusaurus-plugin-content-pages/markdown-page.md deleted file mode 100644 index 9756c5b6..00000000 --- a/docs/i18n/zh/docusaurus-plugin-content-pages/markdown-page.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Markdown page example ---- - -# Markdown page example - -You don't need React to write simple standalone pages. diff --git a/docs/i18n/zh/docusaurus-theme-classic/footer.json b/docs/i18n/zh/docusaurus-theme-classic/footer.json index 1e3ea858..8cdc353a 100644 --- a/docs/i18n/zh/docusaurus-theme-classic/footer.json +++ b/docs/i18n/zh/docusaurus-theme-classic/footer.json @@ -25,7 +25,7 @@ }, "link.item.label.Gitee": { "message": "Gitee", - "description": "The label of footer link with label=Gitee linking to https://gitee.com/itmachen/hippo4j" + "description": "The label of footer link with label=Gitee linking to https://gitee.com/opengoofy/hippo4j" }, "link.item.label.GitHub": { "message": "GitHub", @@ -38,5 +38,33 @@ "copyright": { "message": "Copyright © 2021-2022 小马哥版权所有 京ICP备2021038095号-2\n", "description": "The footer copyright" + }, + "link.title.Links": { + "message": "Links", + "description": "The title of the footer links column with title=Links in the footer" + }, + "link.item.label.Intro": { + "message": "Intro", + "description": "The label of footer link with label=Intro linking to /docs/user_docs/intro" + }, + "link.item.label.Config Mode": { + "message": "Config Mode", + "description": "The label of footer link with label=Config Mode linking to /docs/user_docs/getting_started/config/hippo4j-config-start" + }, + "link.item.label.Server Mode": { + "message": "Server Mode", + "description": "The label of footer link with label=Server Mode linking to /docs/user_docs/getting_started/server/hippo4j-server-start" + }, + "link.item.label.Group": { + "message": "Group", + "description": "The label of footer link with label=Group linking to https://hippo4j.cn/group" + }, + "link.item.label.WeChat": { + "message": "WeChat", + "description": "The label of footer link with label=WeChat linking to https://mp.weixin.qq.com/s/diVHYvwiuYH9aWpZDPc27g" + }, + "link.item.label.推广合作": { + "message": "推广合作", + "description": "The label of footer link with label=推广合作 linking to https://hippo4j.cn/docs/user_docs/other/operation" } } diff --git a/docs/i18n/zh/docusaurus-theme-classic/navbar.json b/docs/i18n/zh/docusaurus-theme-classic/navbar.json index 3e38678a..e32b94ae 100644 --- a/docs/i18n/zh/docusaurus-theme-classic/navbar.json +++ b/docs/i18n/zh/docusaurus-theme-classic/navbar.json @@ -18,5 +18,17 @@ "item.label.🥇代码实战课": { "message": "🥇代码实战课", "description": "Navbar item with label 🥇代码实战课" + }, + "item.label.采用公司": { + "message": "采用公司", + "description": "Navbar item with label 采用公司" + }, + "item.label.加群沟通": { + "message": "加群沟通", + "description": "Navbar item with label 加群沟通" + }, + "item.label.🚀 拿个offer": { + "message": "🚀 拿个offer", + "description": "Navbar item with label 🚀 拿个offer" } } diff --git a/docs/package-lock.json b/docs/package-lock.json index a2b19807..bf011a95 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -10,11 +10,16 @@ "dependencies": { "@docusaurus/core": "2.1.0", "@docusaurus/preset-classic": "2.1.0", + "@iconify-icons/logos": "^1.2.31", + "@iconify/react": "^4.1.0", "@mdx-js/react": "^1.6.22", + "autoprefixer": "^10.4.14", "clsx": "^1.1.1", + "postcss": "^8.4.23", "prism-react-renderer": "^1.3.3", "react": "^17.0.2", - "react-dom": "^17.0.2" + "react-dom": "^17.0.2", + "tailwindcss": "^3.3.2" }, "devDependencies": { "@docusaurus/module-type-aliases": "2.1.0" @@ -165,6 +170,17 @@ "@algolia/requester-common": "4.17.0" } }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -2534,6 +2550,33 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@iconify-icons/logos": { + "version": "1.2.34", + "resolved": "https://registry.npmjs.org/@iconify-icons/logos/-/logos-1.2.34.tgz", + "integrity": "sha512-WbzJemIKsEt5/fVP7lmpsaFSXV8Wg5L8BngZpqInFWc5nxSaQvtSjHBWPQOQQ7cVr8T5di6wwJWWEdCBXP6hpw==", + "dependencies": { + "@iconify/types": "*" + } + }, + "node_modules/@iconify/react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-4.1.1.tgz", + "integrity": "sha512-jed14EjvKjee8mc0eoscGxlg7mSQRkwQG3iX3cPBCO7UlOjz0DtlvTqxqEcHUJGh+z1VJ31Yhu5B9PxfO0zbdg==", + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "react": ">=16" + } + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" + }, "node_modules/@jest/schemas": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", @@ -3735,6 +3778,11 @@ "node": ">=4" } }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -5527,6 +5575,11 @@ "detect-port": "bin/detect-port.js" } }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -5538,6 +5591,11 @@ "node": ">=8" } }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -8101,6 +8159,16 @@ "multicast-dns": "cli.js" } }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -8242,6 +8310,14 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -8629,6 +8705,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -8822,6 +8914,76 @@ "postcss": "^8.2.15" } }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "engines": { + "node": ">= 14" + } + }, "node_modules/postcss-loader": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.0.tgz", @@ -9023,6 +9185,24 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, "node_modules/postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", @@ -9826,6 +10006,14 @@ "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -11057,6 +11245,54 @@ "postcss": "^8.2.15" } }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -11112,6 +11348,53 @@ "node": ">= 10" } }, + "node_modules/tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -11180,6 +11463,25 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -11267,6 +11569,11 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "node_modules/tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", @@ -12574,6 +12881,11 @@ "@algolia/requester-common": "4.17.0" } }, + "@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==" + }, "@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -14218,6 +14530,27 @@ "@hapi/hoek": "^9.0.0" } }, + "@iconify-icons/logos": { + "version": "1.2.34", + "resolved": "https://registry.npmjs.org/@iconify-icons/logos/-/logos-1.2.34.tgz", + "integrity": "sha512-WbzJemIKsEt5/fVP7lmpsaFSXV8Wg5L8BngZpqInFWc5nxSaQvtSjHBWPQOQQ7cVr8T5di6wwJWWEdCBXP6hpw==", + "requires": { + "@iconify/types": "*" + } + }, + "@iconify/react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@iconify/react/-/react-4.1.1.tgz", + "integrity": "sha512-jed14EjvKjee8mc0eoscGxlg7mSQRkwQG3iX3cPBCO7UlOjz0DtlvTqxqEcHUJGh+z1VJ31Yhu5B9PxfO0zbdg==", + "requires": { + "@iconify/types": "^2.0.0" + } + }, + "@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==" + }, "@jest/schemas": { "version": "29.4.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", @@ -15174,6 +15507,11 @@ "color-convert": "^1.9.0" } }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, "anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", @@ -16419,6 +16757,11 @@ "debug": "4" } }, + "didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -16427,6 +16770,11 @@ "path-type": "^4.0.0" } }, + "dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -18299,6 +18647,16 @@ "thunky": "^1.0.2" } }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, "nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -18390,6 +18748,11 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, + "object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==" + }, "object-inspect": { "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", @@ -18666,6 +19029,16 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==" + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==" + }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -18785,6 +19158,40 @@ "postcss-selector-parser": "^6.0.5" } }, + "postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "requires": { + "camelcase-css": "^2.0.1" + } + }, + "postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "requires": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "dependencies": { + "yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==" + } + } + }, "postcss-loader": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.0.tgz", @@ -18906,6 +19313,14 @@ "icss-utils": "^5.0.0" } }, + "postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "requires": { + "postcss-selector-parser": "^6.0.11" + } + }, "postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", @@ -19469,6 +19884,14 @@ "use-latest": "^1.2.1" } }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "requires": { + "pify": "^2.3.0" + } + }, "readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -20408,6 +20831,40 @@ "postcss-selector-parser": "^6.0.4" } }, + "sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==" + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + } + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -20447,6 +20904,45 @@ } } }, + "tailwindcss": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", + "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "requires": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.18.2", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "dependencies": { + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + } + } + }, "tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -20487,6 +20983,22 @@ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -20550,6 +21062,11 @@ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" }, + "ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, "tslib": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", diff --git a/docs/package.json b/docs/package.json index 6e4fd938..34d8fecc 100644 --- a/docs/package.json +++ b/docs/package.json @@ -20,7 +20,13 @@ "clsx": "^1.1.1", "prism-react-renderer": "^1.3.3", "react": "^17.0.2", - "react-dom": "^17.0.2" + "react-dom": "^17.0.2", + "autoprefixer": "^10.4.14", + "tailwindcss": "^3.3.2", + "postcss": "^8.4.23", + "@iconify-icons/logos": "^1.2.31", + "@iconify/react": "^4.1.0" + }, "devDependencies": { "@docusaurus/module-type-aliases": "2.1.0" diff --git a/docs/src/components/LandingPage/GithubInfo.jsx b/docs/src/components/LandingPage/GithubInfo.jsx new file mode 100644 index 00000000..bd8d9f57 --- /dev/null +++ b/docs/src/components/LandingPage/GithubInfo.jsx @@ -0,0 +1,52 @@ +import React from "react"; +import useGithubInfo from "./useGithubInfo"; + +const GithubInfo = ({ owner, repo }) => { + const { favorites, language, forks, license } = useGithubInfo(owner, repo); + + return ( +
+
+
+ {/* 应用运行时动态变更线程池参数,包括不限于核心、最大线程、阻塞队列大小和拒绝策略等,支持应用集群下不同节点线程池配置差异化 */}
+
+
+
+ {/* 应用线程池运行时埋点,提供四种报警维度,线程池过载、阻塞队列容量、运行超长以及拒绝策略报警,并支持自定义时间内不重复报警 */}
+
+
+
+ {/* 支持自定义时长线程池运行数据采集存储,同时也支持
+ Prometheus、InfluxDB 等采集监控,通过 Grafana
+ 或内置监控页面提供可视化大屏监控运行指标 */}
+
+
+
{siteConfig.tagline}
+
+