IP Library Granted Patent US 11,341,024
Granted Patent B2
US 11,341,024 · App. 16/670,839 · Granted May 24, 2022

Automatic configuration of logging infrastructure for software deployments using source code

Inventors: James Ross (San Francisco, CA); Robert Fink (Munich, DE)
Assignee: Palantir Technologies Inc.
G06F11/3476G06F8/427G06F16/9027
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,341,024
App. No.
16/670,839
Granted
May 24, 2022
Kind
B2
Abstract

One or more processors examine source code of one or more software packages that produce output messages and identify, in the source code, one or more call expressions that each represent a logging call. The one or more processors generate a number of search patterns for parsing output messages produced by the one or more software packages, wherein each of the search patterns is based on one or more arguments of a corresponding call expression of the one or more call expressions. The one or more processors further reduce the number of search patterns to be applied to the output messages produced by the one or more software packages to identify log entries among the output messages.

Claims (51)

1. A method comprising:

examining source code of one or more software packages that produce output messages;

identifying, in the source code, one or more call expressions that each represent a logging call;

generating a number of search patterns for parsing output messages produced by the one or more software packages, wherein each of the search patterns is based on one or more arguments of a corresponding call expression of the one or more call expressions; and

reducing the number of search patterns to be applied to the output messages produced by the one or more software packages to identify log entries among the output messages.

2. The method of claim 1 , wherein identifying the one or more call expressions comprises traversing one or more abstract syntax trees for the one or more software packages.

3. The method of claim 1 , wherein generating the number of search patterns comprises applying string parsing logic to a string representing the corresponding call expression, the string parsing logic to identify a function call and one or more parameters in the one or more arguments of the corresponding call expression.

4. The method of claim 1 , wherein the search patterns comprise regular expressions.

5. The method of claim 1 , wherein reducing the number of search patterns comprises:

generating an ordered list of the search patterns according to a number of output messages recognized as log entries based on each search pattern.

6. The method of claim 5 , wherein reducing the number of search patterns further comprises:

identifying a threshold number of the search patterns, wherein the search patterns among the threshold number have a higher number of output messages recognized as log entries than search patterns outside the threshold number; and

removing the search patterns outside the threshold number from the ordered list.

7. The method of claim 1 , wherein a log entry component that applies the search patterns to the output messages produced by the one or more software packages is configured to:

receive an output message produced by the one or more software packages during execution;

iteratively compare the output message to each search pattern in an ordered list of the number of search patterns until a match is found, wherein the ordered list is arranged based on how often each search pattern has a matching output message;

convert the output message to a structured format; and

provide the message to a central repository.

8. A system comprising:

memory; and

one or more processors coupled to the memory, the one or more processors to:

examine source code of one or more software packages that produce output messages;

identify, in the source code, one or more call expressions that each represent a logging call;

generate a number of search patterns for parsing output messages produced by the one or more software packages, wherein each of the search patterns is based on one or more arguments of a corresponding call expression of the one or more call expressions; and

reduce the number of search patterns to be applied to the output messages produced by the one or more software packages to identify log entries among the output messages.

9. The system of claim 8 , wherein to identify the one or more call expressions, the one or more processors to traverse one or more abstract syntax trees for the one or more software packages.

10. The system of claim 8 , wherein to generate the number of search patterns, the one or more processors to apply string parsing logic to a string representing the corresponding call expression, the string parsing logic to identify a function call and one or more parameters in the one or more arguments of the corresponding call expression.

11. The system of claim 8 , wherein the search patterns comprise regular expressions.

12. The system of claim 8 , wherein to reduce the number of search patterns, the one or more processors to:

generate an ordered list of the search patterns according to a number of output messages recognized as log entries based on each search pattern.

13. The system of claim 12 , wherein to reduce the number of search patterns, the one or more processors further to:

identify a threshold number of the search patterns, wherein the search patterns among the threshold number have a higher number of output messages recognized as log entries than search patterns outside the threshold number; and

remove the search patterns outside the threshold number from the ordered list.

14. The system of claim 8 , wherein a log entry component that applies the search patterns to the output messages produced by the one or more software packages is configured to:

receive an output message produced by the one or more software packages during execution;

iteratively compare the output message to each search pattern in an ordered list of the number of search patterns until a match is found, wherein the ordered list is arranged based on how often each search pattern has a matching output message;

convert the output message to a structured format; and

provide the message to a central repository.

15. A non-transitory computer readable storage medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

examine source code of one or more software packages that produce output messages;

identify, in the source code, one or more call expressions that each represent a logging call;

generate a number of search patterns for parsing output messages produced by the one or more software packages, wherein each of the search patterns is based on one or more arguments of a corresponding call expression of the one or more call expressions; and

reduce the number of search patterns to be applied to the output messages produced by the one or more software packages to identify log entries among the output messages.

16. The non-transitory computer readable storage medium of claim 15 , wherein to identify the one or more call expressions, the instructions cause the one or more processors to traverse one or more abstract syntax trees for the one or more software packages.

17. The non-transitory computer readable storage medium of claim 15 , wherein to generate the number of search patterns, the instructions cause the one or more processors to apply string parsing logic to a string representing the corresponding call expression, the string parsing logic to identify a function call and one or more parameters in the one or more arguments of the corresponding call expression.

18. The non-transitory computer readable storage medium of claim 15 , wherein the search patterns comprise regular expressions.

19. The non-transitory computer readable storage medium of claim 15 , wherein to reduce the number of search patterns, the instructions cause the one or more processors to:

generate an ordered list of the search patterns according to a number of output messages recognized as log entries based on each search pattern.

20. The non-transitory computer readable storage medium of claim 19 , wherein to reduce the number of search patterns, the instructions cause the one or more processors further to:

identify a threshold number of the search patterns, wherein the search patterns among the threshold number have a higher number of output messages recognized as log entries than search patterns outside the threshold number; and

remove the search patterns outside the threshold number from the ordered list.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 6, 2019
From: ROSS, JAMES; FINK, ROBERT
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 050935/0889 →
Continuity (2)
Provisional Application 62897474 · Sep 9, 2019
Related Publication 20210073103A1 · Mar 11, 2021
Cited By (2)
US 12,189,630 US 12,399,867