Skip to content

Commit 8a1c893

Browse files
authoredFeb 19, 2025··
Add isSizeLimited in SegmentObject (#367)
1 parent f6bbda3 commit 8a1c893

File tree

9 files changed

+14
-5
lines changed

9 files changed

+14
-5
lines changed
 

‎CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
- Feature:
66
- Drop support for 3.7 (#356)
77
- Support sampling rate setup. Provide `SW_SAMPLE_N_PER_3_SECS` environment variable to control it (#357)
8-
- Add suport for 3.13 (#366)
8+
- Add support for 3.13 (#366)
9+
- Add isSizeLimited in SegmentObject (#367)
910

1011
- Plugins:
1112
- Add gRPC plugin (#362)

‎skywalking/agent/protocol/grpc.py

+1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ def generator():
119119
traceSegmentId=str(segment.segment_id),
120120
service=config.agent_name,
121121
serviceInstance=config.agent_instance_name,
122+
isSizeLimited=segment.is_size_limited,
122123
spans=[SpanObject(
123124
spanId=span.sid,
124125
parentSpanId=span.pid,

‎skywalking/agent/protocol/grpc_aio.py

+1
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ async def generator():
108108
traceSegmentId=str(segment.segment_id),
109109
service=config.agent_name,
110110
serviceInstance=config.agent_instance_name,
111+
isSizeLimited=segment.is_size_limited,
111112
spans=[SpanObject(
112113
spanId=span.sid,
113114
parentSpanId=span.pid,

‎skywalking/agent/protocol/kafka.py

+1
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ def generator():
7373
traceSegmentId=str(segment.segment_id),
7474
service=config.agent_name,
7575
serviceInstance=config.agent_instance_name,
76+
isSizeLimited=segment.is_size_limited,
7677
spans=[SpanObject(
7778
spanId=span.sid,
7879
parentSpanId=span.pid,

‎skywalking/agent/protocol/kafka_aio.py

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ async def generator():
6060
traceSegmentId=str(segment.segment_id),
6161
service=config.agent_name,
6262
serviceInstance=config.agent_instance_name,
63+
isSizeLimited=segment.is_size_limited,
6364
spans=[SpanObject(
6465
spanId=span.sid,
6566
parentSpanId=span.pid,

‎skywalking/client/http.py

+1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def report(self, generator):
7272
'traceSegmentId': str(segment.segment_id),
7373
'service': config.agent_name,
7474
'serviceInstance': config.agent_instance_name,
75+
'isSizeLimited': segment.is_size_limited,
7576
'spans': [{
7677
'spanId': span.sid,
7778
'parentSpanId': span.pid,

‎skywalking/client/http_aio.py

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ async def report(self, generator):
7878
'traceSegmentId': str(segment.segment_id),
7979
'service': config.agent_name,
8080
'serviceInstance': config.agent_instance_name,
81+
'isSizeLimited': segment.is_size_limited,
8182
'spans': [{
8283
'spanId': span.sid,
8384
'parentSpanId': span.pid,

‎skywalking/trace/context.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def __init__(self):
104104
self.primary_endpoint: Optional[PrimaryEndpoint] = None
105105

106106
@staticmethod
107-
def ignore_check(op: str, kind: Kind, carrier: Optional[Carrier] = None):
107+
def ignore_check(op: str, carrier: Optional[Carrier] = None):
108108
if config.RE_IGNORE_PATH.match(op) or agent.is_segment_queue_full() or (carrier is not None and carrier.is_suppressed):
109109
return NoopSpan(context=NoopContext())
110110

@@ -136,15 +136,15 @@ def new_span(self, parent: Optional[Span], SpanType: type, **kwargs) -> Span: #
136136
return span
137137

138138
def new_local_span(self, op: str) -> Span:
139-
span = self.ignore_check(op, Kind.Local)
139+
span = self.ignore_check(op)
140140
if span is not None:
141141
return span
142142

143143
parent = self.peek()
144144
return self.new_span(parent, Span, op=op, kind=Kind.Local)
145145

146146
def new_entry_span(self, op: str, carrier: Optional[Carrier] = None, inherit: Optional[Component] = None) -> Span:
147-
span = self.ignore_check(op, Kind.Entry, carrier)
147+
span = self.ignore_check(op, carrier)
148148
if span is not None:
149149
return span
150150

@@ -173,7 +173,7 @@ def new_entry_span(self, op: str, carrier: Optional[Carrier] = None, inherit: Op
173173

174174
def new_exit_span(self, op: str, peer: str,
175175
component: Optional[Component] = None, inherit: Optional[Component] = None) -> Span:
176-
span = self.ignore_check(op, Kind.Exit)
176+
span = self.ignore_check(op)
177177
if span is not None:
178178
return span
179179

@@ -222,6 +222,7 @@ def stop(self, span: Span) -> bool:
222222

223223
self._nspans -= 1
224224
if self._nspans == 0:
225+
self.segment.is_size_limited = agent.is_segment_queue_full()
225226
agent.archive_segment(self.segment)
226227
return True
227228

‎skywalking/trace/segment.py

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ def __init__(self):
8181
self.spans = [] # type: List[Span]
8282
self.timestamp = int(time.time() * 1000) # type: int
8383
self.related_traces = [_NewID()] # type: List[ID]
84+
self.is_size_limited = False # type: bool
8485

8586
def archive(self, span: 'Span'):
8687
self.spans.append(span)

0 commit comments

Comments
 (0)
Please sign in to comment.