Profiling the Shared File Systems service
Profiler
The detailed description of the profiler and its config options is
available at Profiler
docs.
Using Profiler
To start profiling Manila code, the following steps have to be
taken:
-
Add the following lines to the
/etc/manila/manila.conf
file (the profiling is disabled by
default).[profiler] connection_string = redis://localhost:6379 hmac_keys = SECRET_KEY trace_sqlalchemy = True enabled = True
Examples of possible values for
connection_string
option:messaging://
– use oslo_messaging driver for sending
spans.redis://127.0.0.1:6379
– use redis driver for sending
spans.mongodb://127.0.0.1:27017
– use mongodb driver for
sending spans.elasticsearch://127.0.0.1:9200
– use elasticsearch
driver for sending spans.jaeger://127.0.0.1:6831
– use jaeger tracing as driver
for sending spans.
-
Restart all manila services and keystone service.
-
To verify profiler with manilaclient, run any command with
--profile <key>.
The key (e.g. SECRET_KEY) should be
one of thehmac_keys
mentioned in manila.conf. To generate
correct profiling information across all services at least one key needs
to be consistent between OpenStack projects.$ manila --profile SECRET_KEY create NFS 1 --name Share1 --share-network testNetwork --share-type dhss_true +---------------------------------------+--------------------------------------+ | Property | Value | +---------------------------------------+--------------------------------------+ | id | 9703da88-25ba-41e6-827d-a6932f708dd4 | | size | 1 | | availability_zone | None | | created_at | 2021-02-23T11:21:38.000000 | | status | creating | | name | Share1 | | description | None | | project_id | c67b2fd35b054060971d28cf654ee92a | | snapshot_id | None | | share_network_id | 03754c58-1456-497f-b7d6-8f36a4d644f0 | | share_proto | NFS | | metadata | {} | | share_type | 5b1a4133-371c-4583-a801-f2b6e1ae102d | | is_public | False | | snapshot_support | False | | task_state | None | | share_type_name | dhss_true | | access_rules_status | active | | replication_type | None | | has_replicas | False | | user_id | 7ecd60ddae1448b79449dc6434460eaf | | create_share_from_snapshot_support | False | | revert_to_snapshot_support | False | | share_group_id | None | | source_share_group_snapshot_member_id | None | | mount_snapshot_support | False | | progress | None | | share_server_id | None | | host | | +---------------------------------------+--------------------------------------+ Profiling trace ID: 1705dfd8-e45a-46cd-b0e2-2e40fd9e5f22 To display trace use next command: osprofiler trace show --html 1705dfd8-e45a-46cd-b0e2-2e40fd9e5f22
-
To verify profiler with openstackclient, run any command with
--os-profile <key>
.$ openstack --os-profile SECRET_KEY share create NFS 1 --name Share2 --share-network testNetwork --share-type dhss_true +---------------------------------------+--------------------------------------+ | Field | Value | +---------------------------------------+--------------------------------------+ | access_rules_status | active | | availability_zone | None | | create_share_from_snapshot_support | False | | created_at | 2021-02-23T11:23:41.000000 | | description | None | | has_replicas | False | | host | | | id | 78a19734-394f-4967-9671-c226df00a023 | | is_public | False | | metadata | {} | | mount_snapshot_support | False | | name | Share2 | | progress | None | | project_id | c67b2fd35b054060971d28cf654ee92a | | replication_type | None | | revert_to_snapshot_support | False | | share_group_id | None | | share_network_id | 03754c58-1456-497f-b7d6-8f36a4d644f0 | | share_proto | NFS | | share_server_id | None | | share_type | 5b1a4133-371c-4583-a801-f2b6e1ae102d | | share_type_name | dhss_true | | size | 1 | | snapshot_id | None | | snapshot_support | False | | source_share_group_snapshot_member_id | None | | status | creating | | task_state | None | | user_id | 7ecd60ddae1448b79449dc6434460eaf | | volume_type | dhss_true | +---------------------------------------+--------------------------------------+ Trace ID: 0ca7ce01-36a9-481c-8b3d-263a3b5caa35 Short trace ID for OpenTracing-based drivers: 8b3d263a3b5caa35 Display trace data with command: osprofiler trace show --html 0ca7ce01-36a9-481c-8b3d-263a3b5caa35
-
To display the trace date in HTML format, run below command.
$ osprofiler trace show --html 0ca7ce01-36a9-481c-8b3d-263a3b5caa35 --connection-string redis://localhost:6379 --out /opt/stack/output.html