1. 29 9月, 2021 1 次提交
  2. 25 9月, 2021 1 次提交
    • wu-sheng's avatar
      Begin 8.9.0 iteration (#7801) · 8b681053
      wu-sheng 提交于
      * [maven-release-plugin] prepare release v8.8.0
      
      * [maven-release-plugin] prepare for next development iteration
      
      * Create changes-8.8.0.md
      
      * Reset changelog for 8.9.0
      8b681053
  3. 02 9月, 2021 1 次提交
  4. 30 7月, 2021 1 次提交
    • wu-sheng's avatar
      Begin 8.8.0 iteration (#7395) · 1c5e22a7
      wu-sheng 提交于
      * [maven-release-plugin] prepare release v8.7.0
      
      * [maven-release-plugin] prepare for next development iteration
      1c5e22a7
  5. 29 6月, 2021 2 次提交
    • K
      Perf: cache metrics id and entity id (#7201) · f5b7c3e3
      kezhenxu94 提交于
      There are a lot of calls to `Metrics.id()` and `ISource.getEntityId`, which calculates the id by manipulating strings in every single call, producing many garbage objects.
      
      In this patch, I cache the id and only calculate the id if it's requested for the first time.
      f5b7c3e3
    • K
      Perf: cache regex pattern and result, optimize string concatenation (#7199) · 84a7fe30
      kezhenxu94 提交于
      The possible metrics names are relatively fixed in an OAP run, we previously always escape the metrics names, building a new regex Pattern from scratch, which is cpu-consuming.
      
      In this patch, I cache the escaped metrics names, and if it missed, use a pre-compiled regex Pattern to escape the metrics name.
      
      This patch also replace string concatenation `+` with `StringBuilder` in generated classes, which won't get optimized by Java compiler
      
      This may reduce 1~1.5 vCPU under 20K RPS environment.
      84a7fe30
  6. 19 6月, 2021 1 次提交
  7. 08 6月, 2021 1 次提交
  8. 09 4月, 2021 1 次提交
  9. 07 2月, 2021 1 次提交
  10. 06 2月, 2021 1 次提交
  11. 02 2月, 2021 1 次提交
    • wu-sheng's avatar
      Begin the 8.5.0 iteration (#6302) · cdfe6ab3
      wu-sheng 提交于
      * [maven-release-plugin] prepare release v8.4.0
      
      * [maven-release-plugin] prepare for next development iteration
      cdfe6ab3
  12. 20 1月, 2021 1 次提交
  13. 29 11月, 2020 1 次提交
  14. 17 11月, 2020 1 次提交
  15. 01 11月, 2020 1 次提交
  16. 24 10月, 2020 1 次提交
  17. 31 8月, 2020 1 次提交
  18. 26 8月, 2020 1 次提交
  19. 23 8月, 2020 1 次提交
  20. 12 8月, 2020 2 次提交
  21. 11 8月, 2020 1 次提交
  22. 31 7月, 2020 1 次提交
    • wu-sheng's avatar
      Begin 8.2.0 iteration. (#5211) · 2f2840cb
      wu-sheng 提交于
      * [maven-release-plugin] prepare release v8.1.0
      
      * [maven-release-plugin] prepare for next development iteration
      2f2840cb
  23. 22 7月, 2020 1 次提交
  24. 03 7月, 2020 1 次提交
  25. 12 6月, 2020 1 次提交
  26. 11 5月, 2020 1 次提交
    • 静夜思朝颜's avatar
      Alarm support multiple scope (#4769) · 749af3e0
      静夜思朝颜 提交于
      * Support service relation and database access alarm
      
      * support service instance relation alarm
      
      * support endpoint relation alarm
      
      * document and format the name
      
      * resolve issues
      
      * add database access and endpoint relation rule example
      
      * resolve code format
      
      * remove unnecessary getter and setter package declare
      
      * remove unnecessary fields
      Co-authored-by: NMrproliu <mrproliu@lagou.com>
      749af3e0
  27. 08 5月, 2020 2 次提交
  28. 29 4月, 2020 1 次提交
  29. 27 4月, 2020 1 次提交
  30. 24 4月, 2020 1 次提交
    • wu-sheng's avatar
      Provide Meter(metrics) system (#4694) · b635e254
      wu-sheng 提交于
      Here are the basic and simple usages of the MeterSystem APIs.
      
      ## Meter Creation
      New meter could be created based on metrics name, function, scope and data type. 
      1. Metrics name is still the storage entity name.
      2. Functions are every similar with the OAL function, just accepting different input.
      ```java
      final MeterSystem meterSystem = MeterSystem.meterSystem(getManager());
      meterSystem.create("test_long_metrics", "avg", ScopeType.SERVICE, Long.class);
      ```
      NOTICE, this creation should only be called in the `module#prepare` stage, otherwise, `Can't create new metrics anymore` exception will be raised after the **CORE** module `start` stage finished. You may find out, there is a chance `create` could be executed successfully in your own `module#start` stage, but it it just because of the sequence of provider loaded by the class loader, **no guarantee, so please don't do that**.
      
      ## Runtime Calculation
      `AcceptableValue` is the object created at the runtime to accept new metrics value.
      ```java
               final MeterSystem service = getManager().find(CoreModule.NAME).provider().getService(MeterSystem.class);
              Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(new Runnable() {
                  @Override
                  public void run() {
                      final AcceptableValue<Long> value = service.buildMetrics("test_long_metrics", Long.class);
                      value.accept(MeterEntity.newService("abc"), 5L);
                      value.setTimeBucket(TimeBucket.getMinuteTimeBucket(System.currentTimeMillis()));
                      service.doStreamingCalculation(value);
                  }
              }, 2, 2, TimeUnit.SECONDS);
      ```
      
      ## Meter Functions
      Right now, only `avg` function has been implemented. I submit this PR as soon as possible to get your feedback. I will add more functions.
      
      ## Notice
      1. Make slow trace query available in the sampled record. Logically, they are the same thing. The UI doesn't need to concern about the trace as a special case.
      2. Endpoint dependency will be removed from the dashboard. Because no query available for it. We will provide a new page for that in 8.1
      3. Comparison page will be removed due to dashboard is powerful enough to replace it.
      b635e254
  31. 21 4月, 2020 1 次提交
    • wu-sheng's avatar
      New metrics query protocol v2 (#4679) · 418bdff2
      wu-sheng 提交于
      1. Support the new query protocol, and the v1 query protocol is still supported 
      2. All `numOfxxx`/`GlobalBrief` is only a mock now, no real number.
      3. typeOfMetrics service is a mock only too, follow up PR will implement this.
      418bdff2
  32. 10 4月, 2020 1 次提交
    • wu-sheng's avatar
      Make 8.0.0 Core available. New protocol and register removed. (#4599) · 6fe2041b
      wu-sheng 提交于
      Here are the list of changes we made in this pull request. Top 3 are the principle changes, others are following these principles.
      1. New agent and mesh report protocol. 
      2. New agent header protocol. 
      3. Service register, instance register and network address register have been removed permanently.
      4. Service traffic, instance traffic and network alias metrics are added to replace the service, instance and network address inventory.
      5. Register process has been removed.
      6. Metrics stream process supports insert only mode, especially for traffic entities.
      7. Metrics stream process supports no-downsampling mode for traffic entities and network alias.
      8. Remove all register mechanism and cache in the java agent.
      9. Remove MONTH step in GraphQL query.
      10. Update UI to remove MONTH step query, the max query range is 60 days now.
      11. Simplify the TTL to metrics and record. And the unit has been formatted in Day unit. No specific TTL for ElasticSearch storage.
      12. Buffer mechanism of trace receiver and mesh receiver has been removed due to no register.
      13. New service id, instance id and endpoint id rules, including service relation, instance relation and endpoint relation id rules.
      14. Java agent support `keep tracing` mode, meaning, agent generating tracing context even the backend is unconnected/unavailable.
      15. Plugin test tool up to date, in order to support new protocol.
      16. Plugin tests expected data files updated.
      17. E2E tests updated.
      18. Telemetry of Grafana config has been merged into one.
      19. Documentation updates.
      20. [TBD] InfluxDB storage implementation is not available, need @dmsolr to fix later, in order to reduce the master change block by this PR.
      6fe2041b
  33. 31 3月, 2020 1 次提交
  34. 30 3月, 2020 1 次提交
    • wu-sheng's avatar
      OAP Core polish, especially storage level (#4587) · e55073e5
      wu-sheng 提交于
      - Add length definition with reasonable default value.
      - #content of @Column has been renamed to storageOnly . I add this to many fields as they are not being query in any case.
      - Merge H2 and MySQL columntype mapping back to consistent.
      - Remove @IDColumn.
      - Support @QueryUnifiedIndex.
      - Refactor the MySQL and H2 installers to use @Column and @QueryUnifiedIndex definitions to create indices automatically. But the index naming rule has been changed to entityseqIDX. seq is the Increment Interger for every entity.
      - Support @MetricsExtension and insertOnly in the MetricsPersistentWorker worker.
      - Optimize MetricsStreamProcessor
      e55073e5
  35. 19 3月, 2020 1 次提交
  36. 16 2月, 2020 1 次提交
  37. 11 2月, 2020 1 次提交
    • K
      Set up more strict code styles and fix existing issues (#4337) · 5b255ba3
      kezhenxu94 提交于
      Motivation:
      
      Review code styles with some bots automatically.
      
      Modifications:
      
      Set up ReviewDog in GitHub Action to review code style.
      
      Add more check rules to checkstyle plugin.
      
      Result:
      
      Obvious code styles can be reviewed and commented automatically.
      5b255ba3