Skip to content

merge from upstream#11

Merged
eric846 merged 9 commits intoeric846:masterfrom
envoyproxy:master
Jul 20, 2020
Merged

merge from upstream#11
eric846 merged 9 commits intoeric846:masterfrom
envoyproxy:master

Conversation

@eric846
Copy link
Copy Markdown
Owner

@eric846 eric846 commented Jul 20, 2020

No description provided.

oschaaf and others added 9 commits July 7, 2020 13:34
- First iteration on testing gcc support in CI. This restricts the
task to just building Nighthawk, and not testing it yet, as that
needs a change in Envoy to go in first.
- Small cleanup, and a bugfix for those who use the script to run
locally, which would be detected as running in CircleCI.

Related issue: #382
(needs a follow up to close, left in as a code-level todo).

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
#391)

Add new NH statistic class CircllhistStatistic and SinkableCircllhistStatistic.

CircllhistStatistic uses Circllhist under the hood to compute statistics where Circllhist is used in the implementation of Envoy Histograms. Compared to HdrHistogram Circllhist trades precision for fast performance in merge and insertion according to #115.

SinkableCircllhistStatistic wraps the Envoy::Stats::Histogram interface and is used to flush histogram value to downstream Envoy stats Sinks.

Linked Issues: #344

Testing: unit tests
Add an extension which implements dynamic delay injection based on the number
of concurrent requests being handled, as well as static delays.

Fixes #389 and also #82. We may consider removing the direct fault filter configs
from our docs as well as emit a log warning when detecting usage to deprecate.
It would be nice if we could add the fault filter extension in code instead of imposing
configuration of that upon the end user, making that an implementation detail.

The following shows a per-request config example. 
This header-provided configuration gets merged with any provided static configuration to
determine a final configuration for each request:

```
curl -H "x-nighthawk-test-server-config:{static_delay:\"1s\"}"  -vv 127.0.0.1:10000
```

Full yaml config for the http_filters section:

```yaml
                http_filters:
                  - name: dynamic-delay
                    config:
                      concurrency_based_delay:
                        minimal_delay: 0.05s
                        concurrency_delay_factor: 0.010s                  
                  - name: test-server
                    config:
                      response_body_size: 10
                      response_headers:
                        - { header: { key: "x-nh", value: "1" } }
```

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
…essfully. This command will create the files needed for CLang intellisense to work. (#403)

Signed-off-by: Peter Morgan <8431046+pamorgan@users.noreply.github.com>
Update Envoy + run gcc-built tests in CI because now we can.

Fixes #382

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
In #337 some review comments related to doc comments have been postponed to a followup.

- Adds more flake8 convention checks. This broadens the checks we introduced in the
benchmarking flow to cover the global code base, and exclude a few
files that we either don't own or care about.
- Updates yapf & flake8 version requirements, which enhances automatic formatting,
as well as fixes a python 3.8 compatibility bug.

Fixes #371
Fixes #400

Summary of compliance failures under the proposed checks before this change:

13    D100 Missing docstring in public module
2     D101 Missing docstring in public class
9     D102 Missing docstring in public method
46    D103 Missing docstring in public function
4     D107 Missing docstring in __init__
29    D200 One-line docstring should fit on one line with quotes
9     D202 No blank lines allowed after function docstring
32    D205 1 blank line required between summary line and description
3     D208 Docstring is over-indented
1     D209 Multi-line docstring closing quotes should be on a separate line
1     D210 No whitespaces allowed surrounding docstring text
1     D300 Use """triple double quotes"""
39    D400 First line should end with a period
16    D401 First line should be in imperative mood
1     E124 closing bracket does not match visual indentation
2     E125 continuation line with same indent as next logical line
7     E126 continuation line over-indented for hanging indent
1     E401 multiple imports on one line
2     E714 test for object identity should be 'is not'
4     F403 'from test.integration.utility import *' used; unable to detect undefined names
152   F405 'assertCounterEqual' may be undefined, or defined from star imports: test.integration.utility
2     F841 local variable 'logs' is assigned to but never used
8     W291 trailing whitespace
1     W293 blank line contains whitespace
3     W504 line break after binary operator
1     W605 invalid escape sequence '\:'
389

Signed-off-by: Otto van der Schaaf oschaaf@we-amp.com
Signed-off-by: Yan Avlasov <yavlasov@google.com>
Switches to c++17

Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
@eric846 eric846 merged commit 9907bf9 into eric846:master Jul 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants