|
1 | | -import os |
2 | 1 | from sqlalchemy import MetaData, Table, Integer, String, Column, create_engine |
3 | | -from sqlalchemy import select |
4 | 2 | from sqlalchemy.schema import CreateTable |
5 | 3 |
|
6 | 4 | import lightstep |
7 | 5 | import sqlalchemy_opentracing |
8 | 6 |
|
9 | | -DB_LOCATION = '/tmp/simple.db' |
10 | | - |
11 | 7 | tracer = lightstep.Tracer( |
12 | 8 | component_name='sqlalchemy-simple', |
13 | 9 | access_token='{your_lightstep_token}' |
14 | 10 | ) |
15 | 11 |
|
16 | | - |
17 | 12 | if __name__ == '__main__': |
18 | | - os.remove(DB_LOCATION) # cleanup |
19 | | - |
20 | | - engine = create_engine('sqlite:///%s' % DB_LOCATION) |
21 | | - conn = engine.connect() |
| 13 | + engine = create_engine('sqlite:///:memory:') |
22 | 14 |
|
23 | 15 | sqlalchemy_opentracing.init_tracing(tracer) |
24 | 16 | sqlalchemy_opentracing.register_connectable(engine) |
25 | 17 |
|
26 | | - span = tracer.start_span('create sample') |
27 | | - |
28 | | - # 1. Create a table |
29 | 18 | metadata = MetaData() |
30 | 19 | users = Table('users', metadata, |
31 | 20 | Column('id', Integer, primary_key=True), |
32 | 21 | Column('name', String), |
33 | 22 | ) |
34 | | - span = tracer.start_span('create sample') |
35 | 23 | creat = CreateTable(users) |
36 | | - sqlalchemy_opentracing.set_parent_span(creat, span) |
37 | | - conn.execute(creat) |
38 | | - |
39 | | - # 2. Insert a single value. |
40 | | - ins = users.insert().values(name='John Doe', id=1) |
41 | | - sqlalchemy_opentracing.set_parent_span(ins, span) |
42 | | - conn.execute(ins) |
| 24 | + sqlalchemy_opentracing.set_traced(creat) |
43 | 25 |
|
44 | | - # 3. Select the new value. |
45 | | - sel = select([users]) |
46 | | - sqlalchemy_opentracing.set_parent_span(sel, span) |
47 | | - print conn.execute(sel).fetchone() |
| 26 | + with engine.begin() as conn: |
| 27 | + conn.execute(creat) |
48 | 28 |
|
49 | | - span.finish() |
50 | 29 | tracer.flush() |
51 | 30 |
|
0 commit comments