The job prepares VM with RabbitMQ installed, then it executes tests
located under osprofiler/tests/functional.
To run the job manually use `tox -e functional` or
`tox -e functional-py35`.
Change-Id: I1f2b99737d1f17bb09662dc24c4858a1a7a1ad44
Messaging driver is extended to read profiling events
from RabbitMQ and generate report. This simplifies
usage of profiling in DevStack since Ceilometer is not
needed anymore.
The typical workflow is following:
1. User issues a command with profiling enabled:
openstack --os-profile SECRET KEY <command>
2. User retrieves the trace:
osprofiler trace show --connection messaging://
--transport-url rabbit://<rabbituser>:<rabbitpassword>@<devstack>:5672/
--json <trace-id>
Change-Id: I950896d6d9156f09e378bdfcf272aef5da4ece74
Add handling of SQLAlchemy errors into OSProfiler. For errors
profiler will emit stop event with information about error
(Python exception).
Closes bug: #1706299
Change-Id: Ib9c1ea2ee3fb0450b8591ff1164f3e7153c5472a
OpenStack authentication is needed by Ceilometer driver only
and is annoying when other drivers are used. The way we currently
verify os-parameters is conceptually wrong: first it covers only
subset of possible variations, second it differs from implementation
inside of python-ceilometerclient.
Change-Id: I3bbb7c47170064728790b22393f6071be3ace336
Closes-bug: 1653062
Oslo.messaging library is not required by OSProfiler core. It is needed
by "messaging" driver only and thus can be turn into runtime dependency
(just like client libs for other drivers).
Change-Id: Ie42cd0fdd5e96ce65b83edf934a139c282d1e784
Test_notifier contains a test case that verifies default notifier value
(test_get_default_notifier) and there are 2 test cases that update
default notifier value. It's supposed that test_get_default_notifier
is executed first, otherwise it gets wrong value. Test's tearDown()
method was designed to restore default notifier, but failed to do so
due to wrong reference to global variable.
Change-Id: Id083f1e8ba4bf2a0341eb1a7ee8891b53c1f3a65
This patch adds function/sql results to trace info
New arg: hide_result (Boolean True/False)
- True (default): Hide function/sql result by default
- False: Show result in trace info
With database: add_tracing(sqlalchemy, engine, name, hide_result=True)
Demo: https://tovin07.github.io/murano/environment-show-with-results.html
Change-Id: I317dfa04e0109d46c1a5ca1e0a3523cfd8470d78
Adding a unit test for the "trace" decorator to check the
case where the decorated function raises an exception. It
also fixes a typo in a dummy function name.
Change-Id: I1c62e5aa7cbc8d5082d9323f6965c13b3a7be9ff
Profiler class is declared to accept 'project', 'service'
and 'connection_str' parameters, which actually have never
been used. This leads to null values inside 'info' dict in
trace data, e.g. to following:
"meta.raw_payload.wsgi-stop": {
"info": {
"project": null,
"host": "allinone172.butterfly.org",
"service": null
},
}
True values for 'service' and 'project' are injected by
notifier into 'payload' section of tracing event.
Change-Id: I3a13bb9ff180be5e3f767aa71fed985d990856ab
when rendering template.html, static files can be loaded from local path '/libs' by using include_libs args.
Change-Id: I36d3457d36e5b831343409748e2e97b377e0cc92
openstackdocstheme shows vertical lines for quote blocks.
This commit removes unnecessary leading spaces.
Change-Id: Ie5651f0510550eb3910e68e433a41e99bf2bfa8a
With this patch the user can select which OSProfiler driver to use
in DevStack. The configuration parameter is `OSPROFILER_CONNECTION_STRING`.
Default empty value refers to Ceilometer-based driver (value `messaging://`).
DevStack plugin's README is updated to explain new option.
Change-Id: I608cd3e7bafd29db72e9e3e4cb8eb7437cd81ab2
Currently we print a generic message if something goes wrong
with ceilometer client initialization. Adding the exception
message to improve the error message printed.
Change-Id: I1b0dbb3951875597bfe3d8ef36626cd798e62e09
DeprecationWarning: Using function/method 'oslo_messaging.get_transport()'
is deprecated: use get_rpc_transport or get_notification_transport
Change-Id: I908f06a9ae3d474d52365eb140a95604e8e0f721
OpenStack project configuration files may be stored elsewhere not in the
default /etc directory or with a different filename. Better relying on
existing environment variables set by each project devstack plugin.
Change-Id: I253739c765b469901d0bc6e0c82922645fb92545
Some of the reasons printed for invalid trace are specific
to Ceilometer. Ceilometer driver already prints authentication
failure message. Also, end-users shouldn't be concerned about
configuring Ceilometer. Updating the error message so that it
is generic enough for all backends.
Change-Id: Id44cdacaf423852458ebef6fb4e5d142ee9ee8b4
The keyword "topic" has been dropped [1] in oslo.messaging. Let's
switch to "topics".
[1] https://review.openstack.org/#/c/433950/
Change-Id: I70012bba09940a5f9a379706b4fc6b901ac9fa02
Sometime, exception or error occurs, we want to find problems quickly.
However, if an output of OSprofiler is long, it will very hard to find
where is the last trace that get stuck.
This visualization can help us a lot in finding problems in services.
Example: https://tovin07.github.io/glance-image-list-highlight.html
Change-Id: Iaabb7850db4dfeec8ce38e0ef5264db8122355ef
Since pbr already landed and the old version of hacking seems not
work very well with pbr>=2, we should update it to match global
requirement.
Partial-Bug: #1668848
Change-Id: I3a2c696417c46581de7acb0b1ac967ac5be150d0
Almost our data-binding in this template is two-way binding.
It is not necessary, 2-way binding will add lots of watchers,
so, our html page will very slow with large trace.
I tried with some html outputs >20MB, it's terrible.
Reference (in One-time binding section):
https://docs.angularjs.org/guide/expression
Change-Id: Ida2f567abff356f20ddcc1d8535a22fd906035ea